Как поменять шрифт в windows forms

A form with a label and a button 'Options'. By clicking the button a new form opens with 2 radio buttons 'Font1' and 'Font2', and two buttons 'Apply' and 'Cancel'. Upon selecting one of the radio b...

I noticed there was not an actual full code answer, so as i come across this, i have created a function, that does change the font, which can be easily modified. I have tested this in

— XP SP3 and Win 10 Pro 64

private void SetFont(Form f, string name, int size, FontStyle style)
{
    Font replacementFont = new Font(name, size, style);
    f.Font = replacementFont;
}

Hint: replace Form to either Label, RichTextBox, TextBox, or any other relative control that uses fonts to change the font on them. By using the above function thus making it completely dynamic.

    /// To call the function do this.
    /// e.g in the form load event etc.

public Form1()
{
      InitializeComponent();
      SetFont(this, "Arial", 8, FontStyle.Bold);  
      // This sets the whole form and 
      // everything below it.
      // Shaun Cassidy.
}

You can also, if you want a full libary so you dont have to code all the back end bits, you can download my dll from Github.

Github DLL

/// and then import the namespace
using Droitech.TextFont;

/// Then call it using:
TextFontClass fClass = new TextFontClass();
fClass.SetFont(this, "Arial", 8, FontStyle.Bold);

Simple.

SHEPARD73

0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

1

08.01.2014, 13:15. Показов 104892. Ответов 20

Метки нет (Все метки)


Народ каким образом мне сделать прорисовку или что то другое, похожее на

C#
1
 private Pen ramkaPen = new Pen(Color.Maroon, 5); // прорисовка рамки(поле для реализации)

чтобы мне можно было сделать конструктор для изменения цвета и шрифта label’а?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



zna926

546 / 477 / 315

Регистрация: 24.09.2013

Сообщений: 3,345

Записей в блоге: 1

08.01.2014, 19:32

2

C#
1
2
3
4
5
6
7
Forms Code
   {
     В разделе Свойства кликнуть по Font,
      там установить назмер шрифта и свойства шрифта
      Окраска: открыть Form_Loag и ввести код:
      label1.ForeColor = Color.Red; // Шрифт красного цвета
   }



0



SHEPARD73

0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

08.01.2014, 23:59

 [ТС]

3

Я с этим разобрался, а теперь мне нужно как-то задать размер шрифта, задаю так

C#
1
label.Font.Size = w;

но почему то ошибка «доступно только для чтения», как исправить?



0



546 / 477 / 315

Регистрация: 24.09.2013

Сообщений: 3,345

Записей в блоге: 1

09.01.2014, 02:30

4

Так задуман код, что можно только получить , а не установливать значение. Установка значения в свойствах и там еще выбор шрифта жирный, наклонный и т.д.



0



lpvoid

324 / 307 / 59

Регистрация: 06.03.2013

Сообщений: 869

09.01.2014, 07:53

5

SHEPARD73,

C#
1
label1.Font = new Font(название, размер, стиль);

System.Drawing.Font



0



SHEPARD73

0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

09.01.2014, 19:34

 [ТС]

6

А как потом изменять размер, т.е. задавать что-вроде

C#
1
label1.Font.Height = w

не получается ?



0



Release

Заблокирован

09.01.2014, 19:39

7

SHEPARD73, вам же написали

Цитата
Сообщение от lpvoid
Посмотреть сообщение

label1.Font = new Font(название, размер, стиль);

C#
1
label1.Font = new Font(label1.font.name, w, label1.font.style)

w — размер шрифта.



1



0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

10.01.2014, 16:06

 [ТС]

8

Я имел ввиду как мне добавить свойство для изменения размера, я же не могу ковертировать все это в числовой тип?



0



Release

Заблокирован

11.01.2014, 22:20

9

Цитата
Сообщение от SHEPARD73
Посмотреть сообщение

я же не могу ковертировать все это в числовой тип?

Он изначально предполагался, что будет числовой или это не так?



0



0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

12.01.2014, 15:15

 [ТС]

10

Цитата
Сообщение от Release
Посмотреть сообщение

Он изначально предполагался, что будет числовой или это не так?

При конвертации в числовой тип появляется ошибка: неявное преобразование типа int в string



0



Release

Заблокирован

12.01.2014, 15:24

11

SHEPARD73, я вас понять не могу. на форму я кинул TB, туда пишу размер шрифта и на кнопку, такой код

C#
1
label1.Font = new Font(label1.Font.Name, Convert.ToSingle(textBox1.Text), label1.Font.Style);



0



SHEPARD73

0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

12.01.2014, 16:42

 [ТС]

12

Release, Я хочу чтобы через панель свойства можно было задавать ширину текста в label, должно быть что то вроде

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[CategoryAttribute("Label")]
        [Description("Выбор ширины label")]
        public int LabelWidth
        {
            get
            {
                return Convert.ToInt32(lab1.Width);
            }
            set
            {
                if (value != Convert.ToInt32(lab1.Width))
                {
                    lab1.Width = value;
                    {
                        Refresh();
                        OnInformationChange(new MyEventArgs());
                    }
                }
            }
        }

но данное свойство изменяет ширину самого label, а не текста



0



Release

Заблокирован

12.01.2014, 17:16

13

Цитата
Сообщение от SHEPARD73
Посмотреть сообщение

lab1.Width = value;

ну так? нужно к Font обращаться. По этому вопросу не могу подсказать.



0



Администратор

Эксперт .NET

9356 / 4638 / 755

Регистрация: 17.04.2012

Сообщений: 9,490

Записей в блоге: 14

12.01.2014, 17:20

14

SHEPARD73, объясните, что вы имеете в виду под «шириной текста»?



0



0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

12.01.2014, 20:22

 [ТС]

15

Цитата
Сообщение от tezaurismosis
Посмотреть сообщение

SHEPARD73, объясните, что вы имеете в виду под «шириной текста»?

пространство между буквами, а также высоту букв



0



zna926

546 / 477 / 315

Регистрация: 24.09.2013

Сообщений: 3,345

Записей в блоге: 1

12.01.2014, 21:37

16

C#
1
2
3
4
5
6
7
Forms Code
{
  Этот код ввести в Font_Load
   label1.Font = new Font("Tobota", 14, FontStyle.Italic); // размер 14
     label1.Text = "ZZZZZZZZZ";
       label1.ForeColor = Color.Red;  //Окраска шрифта 
}



1



0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

13.01.2014, 22:44

 [ТС]

17

zna926,
А как теперь мне вызвать отдельно размер? (для создания свойства изменения размера)



0



zna926

546 / 477 / 315

Регистрация: 24.09.2013

Сообщений: 3,345

Записей в блоге: 1

14.01.2014, 00:17

18

label1.Font = new Font(«Tobota», 14, FontStyle.Italic);

C#
1
2
3
4
5
6
7
Forms Code
{
  public int n;
  n - можно, например, получить из текстбокса или листбокса.
  label1.Font = new Font("Tobota", n, FontStyle.Italic);
 
}



0



SHEPARD73

0 / 0 / 0

Регистрация: 22.12.2013

Сообщений: 48

14.01.2014, 00:31

 [ТС]

19

zna926,
Вы меня не так поняли, мне нужно создать поле в окне свойства, а для этого нужно программно прописать это свойство, но проблема в том, что я не могу конвертировать в int из string, т.е. мне нужно как то отдельно обратиться к размеру шрифта, что то типа

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        public int LabelWidth
        {
            get
            {
                return Convert.ToInt32(lab1.Width);
                return Convert.ToInt32(lab2.Width);
            }
            set
            {
                if ((value != Convert.ToInt32(lab1.Width))&&(value != Convert.ToInt32(lab2.Width)))
                {
                    lab1.Width = value;
                    lab2.Width = value;
                    {
                        Refresh();
                        OnInformationChange(new MyEventArgs());
                    }
                }
            }
        }



0



546 / 477 / 315

Регистрация: 24.09.2013

Сообщений: 3,345

Записей в блоге: 1

14.01.2014, 01:02

20

Как я понял нужно, чтобы ширина шрифта менялась независимо от его размера.
Как это сделать в C# не знаю. Когда работал в С++, там была структура шрифта около 15 полей и можно
создать шрифт по желанию.



0



RRS feed

  • Remove From My Forums
  • Question

  • hi
    i have label control in my windows form, sometimes the output that i want to set as the text property for the label is too long. how i can change the font size of the label in code??
    thanks

Answers

  •       label1.Font = new Font(label1.Font.FontFamily, 13);


    Hans Passant.

    • Marked as answer by
      FMZL
      Sunday, September 27, 2009 9:20 AM

All replies

  • Set the Font property.  Doh.


    Hans Passant.

  • I know i can change it in designer through Font property but i dont know how to do it in code. Label.Font.Size property it a read-only. if you know tell me how?

  •       label1.Font = new Font(label1.Font.FontFamily, 13);


    Hans Passant.

    • Marked as answer by
      FMZL
      Sunday, September 27, 2009 9:20 AM

Понравилась статья? Поделить с друзьями:
  • Как поменять язык в командной строке при установке windows
  • Как поменять шлюз интернета windows 10
  • Как поменять язык в календаре windows 10
  • Как поменять чувствительность мыши на windows 11
  • Как поменять число процессоров на windows 10