Изменение шрифта в windows forms

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. Показов 116714. Ответов 20

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


Студворк — интернет-сервис помощи студентам

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

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

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



0



zna926

547 / 478 / 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



547 / 478 / 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

9414 / 4700 / 759

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

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

Записей в блоге: 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

547 / 478 / 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

547 / 478 / 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



547 / 478 / 315

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

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

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

14.01.2014, 01:02

20

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



0



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.

Windows Forms — это набор инструментов разработки графического интерфейса пользователя в Microsoft .NET Framework. Один из важных аспектов создания приложений с использованием Windows Forms — это возможность гибко настраивать форматирование текста. В этой статье будет рассмотрено, как изменить шрифты, цвета и стили текста в Windows Forms с помощью простых методов.

Изменение шрифта текста

Изменение шрифта текста в Windows Forms можно сделать с использованием класса Font. Прежде всего, необходимо создать экземпляр класса Font, указав имя шрифта, его размер и необязательные параметры, такие как стиль и еще несколько настроек. Затем, можно установить новый шрифт для выбранного элемента управления, используя свойство Font.

Font font = new Font("Arial", 12, FontStyle.Bold); // Создание нового шрифта
label1.Font = font; // Применение шрифта к элементу Label

Изменение цвета текста

В Windows Forms предоставляется возможность изменять цвет текста для различных элементов управления. Цвета можно задать с использованием класса Color или выбрать из предопределенного списка цветов. Пример ниже показывает, как изменить цвет текста в элементе Label.

label1.ForeColor = Color.Red; // Установка красного цвета текста

Изменение стиля текста

Windows Forms также позволяет изменять стиль текста элементов управления, таких как кнопки, метки и текстовые поля. Стиль текста можно настроить с использованием перечисления FontStyle, которое предоставляет различные опции форматирования, такие как жирный, курсив и подчеркнутый.

label1.Font = new Font(label1.Font, FontStyle.Bold | FontStyle.Italic); // Установка жирного и курсивного стиля текста

Вывод

Изменение формата текста в Windows Forms — это простая задача благодаря классам Font, Color и перечислению FontStyle. Разработчики могут легко настраивать шрифты, цвета и стили текста для различных элементов управления в своих приложениях. Это предоставляет возможность создавать эстетически приятные и пользовательские интерфейсы, повышая удобство использования приложений.

In Windows forms, TextBox plays an important role. With the help of TextBox, the user can enter data in the application, it can be of a single line or of multiple lines. In TextBox, you are allowed to change the font of the content present in the TextBox with the help of Font property which makes your textbox more attractive. In Windows form, you can set this property in two different ways: 1. Design-Time: It is the simplest way to set the Font property of the TextBox. As shown in the following steps:

2. Run-Time: It is a little bit trickier than the above method. In this method, you can set the Font property of the TextBox programmatically with the help of given syntax:

public virtual System.Drawing.Font Font { get; set; }

Here, Font is used to represent the font applied to the content of the TextBox. Following steps are used to set the Font property of the TextBox:

  • Step 1 : Create a textbox using the TextBox() constructor provided by the TextBox class.
// Creating textbox
TextBox Mytextbox = new TextBox();
  • Step 2 : After creating TextBox, set the Font property of the TextBox provided by the TextBox class.
// Set Font property
Mytextbox.Font = new Font("Broadway", 12);
  • Step 3 : And last add this textbox control to form using Add() method.
// Add this textbox to form
this.Controls.Add(Mytextbox);
  • Example: 

CSharp

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace my {

public partial class Form1 : Form {

    public Form1()

    {

        InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e)

    {

        Label Mylablel = new Label();

        Mylablel.Location = new Point(96, 54);

        Mylablel.Text = "Enter Name";

        Mylablel.AutoSize = true;

        Mylablel.BackColor = Color.LightGray;

        this.Controls.Add(Mylablel);

        TextBox Mytextbox = new TextBox();

        Mytextbox.Location = new Point(187, 51);

        Mytextbox.BackColor = Color.LightGray;

        Mytextbox.AutoSize = true;

        Mytextbox.Name = "text_box1";

        Mytextbox.CharacterCasing = CharacterCasing.Upper;

        Mytextbox.Font = new Font("Broadway", 12);

        this.Controls.Add(Mytextbox);

    }

}

}

  • Output:

Last Updated :
20 Apr, 2023

Like Article

Save Article

  • Изменение чувствительности мыши windows 10
  • Изменение частоты процессора windows 10
  • Изменение часового пояса windows server 2019
  • Изменение частоты монитора windows 10
  • Изменение частной сети на общественную windows 10