Стайлинг форм C # - PullRequest
       2

Стайлинг форм C #

0 голосов
/ 05 августа 2010

Я занимаюсь разработкой приложения на C # для Windows. Он включает в себя 22 формы для стилей (т. Е. Шрифта, заднего цвета, курсива, цвета ячейки, цвета текста). Я создал функцию, чтобы сделать это, я получаю ошибку.

Мой код:

foreach (Control cnn in gbsty.Controls)
{
    if (cnn is Label)
    {
        if (cnn.Name=="lblheadername")
        {
            cnn.Font = FontStyle.Bold;
        }
    }
}

Ошибка:

Невозможно неявно преобразовать тип 'System.Drawing.FontStyle' в 'System.Drawing.Font'

Ответы [ 2 ]

3 голосов
/ 05 августа 2010
cnn.Font = new Font(cnn.Font, FontStyle.Bold);

См. Больше конструкторов на MSDN

1 голос
/ 05 августа 2010

Кроме того, если вы хотите иметь общий шрифт, метку, текстовое поле и т. Д. ... может быть, вам лучше создать собственную библиотеку классов (как я это сделал, и, вероятно, и другие), которые являются производными от базы class (например, label, textbox и т. д.) и принудительно установите для шрифта по умолчанию заданный размер, цвет и т. д. Затем добавьте THOSE в свои формы, и к ним будут применены одинаковые стили.

Чтобы не допустить фактического сохранения в среде IDE информации о шрифте (или другой информации, которую вы настраиваете) внутри формы и получения непосредственно из определения класса, вы можете сделать один из двух способов (о которых я знаю) ... Пример: под C #

public class MyCustomLabel : Label
 {
    // Either use the [DesignerSerialization...]
    // OR override and make the FONT as READ-ONLY (via only a GETTER)
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public override Font Font
    { get { return new Font("Arial", 9F, FontStyle.Regular, GraphicsUnit.Point);; } }

    ...
    ...

}

Если доступно только для чтения, разработчики форм будут недовольны ошибкой значения, доступного только для чтения, так как оно было изначально введено в форму, но как только вы удалите этот элемент «Font», вам больше не придется это видеть сообщение снова. Затем, если вы хотите изменить такой шрифт, размер, цвет и т. Д., Просто измените его в ВАШЕМ базовом классе.

Кроме того, из этого, если вы хотите создать метку типа "HEADER" как полужирный или другой, просто наследуйте от ВАШЕГО базового класса и снова замените определение FONT, но с его настройками полужирного / размера / цвета ...

public class MyHeaderLabel : MyCustomLabel
{
   public override Font Font
   { get { return new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Point); }

}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...