Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Программное изменение свойства Font


Автор: camtasia 5.6.2010, 11:48
Приветсвую!
необходимо изменить значения свойства Font у компонентов (label, textbox).
допустим ставлю галочку на против Курсив и текст становился курсивным
в msdn на шел такое
Код


textBox1->Font = gcnew System::Drawing::Font(textBox1->Font,FontStyle::Bold);


но это код меняет стиль текста полностью, а мне надо чтобы стиль добавлялся или убирался.
Как быть?


Автор: camtasia 5.6.2010, 23:55
Нашел в MSDN следующее:
Код

Свойство Font является свойством окружения. Свойство окружения — это свойство элемента управления, которое (если оно не задано)
получается из родительского элемента управления. Например, объект Button будет иметь такое же свойство BackColor, что и его 
родительский объект Form по умолчанию. Дополнительные сведения о свойствах окружения см. в общих сведениях о классе 
AmbientProperties или Control.

Поскольку объект Font недоступен (в том смысле, что вы не можете изменять его свойства), можно только назначить свойство Font
 новому объекту Font. Однако можно создать новый шрифт на основе уже существующего.

Из этого я понимаю что отдельно жирность или курсивность настроить я не могу!
Но я нашел ещё вот что:
Код

FontStyle - перечисление 
Задает сведения о стиле, применяемые к тексту.
Это перечисление имеет атрибут FlagsAttribute, поддерживающий побитовое соединение составляющих его значений.

Из этого всего я сделал вывод, что при изменении свойств текста в textBox, путем установки той или иной галочки, можно
 воспользоваться следующим кодом:
Код

  FontStyle Stil;  // здесь хранится набор установленных стилей
  if (checkBox2->Checked) Stil = Stil | FontStyle::Italic;
  if (checkBox3->Checked) Stil = Stil | FontStyle::Underline;
  if (checkBox4->Checked) Stil = Stil | FontStyle::Strikeout;
  if (checkBox1->Checked) Stil = Stil | FontStyle::Bold; 
  textBox1->Font = gcnew System::Drawing::Font(textBox1->Font, Stil);

Если что-то не правильно исправьте меня пожалуйста!
а так тему можно считать закрытой, данная реализация меня вполне устраивает. smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)