Я строю C# Gui. Включено в это событие обновления, которое вызывается каждую секунду или около того, чтобы обновить экран.Использование с шрифтом для установки шрифта TextBox
private void RefreshEverySecond_Tick(object o, EventArgs a)
{
if (Condition1)
{
QuickStatusTextBox.Text = "Condition 1";
QuickStatusTextBox.Font = new Font(QuickStatusTextBox.Font, FontStyle.Bold);
}
else
{
QuickStatusTextBox.Text = "Condition 2";
QuickStatusTextBox.Font = new Font(QuickStatusTextBox.Font, FontStyle.Regular);
}
}
В исследовании способа сделать это, я видел ответы, как это, которые поощряют такое поведение:
Easiest way to change font and font size with visual C#
НО я также видел много болтовни говоря, что я должен быть используя «Использовать» для IDisposable объектов, которые я собираю шрифт.
When should I use "using" blocks in C#?
И примеры использования со шрифтами: http://msdn.microsoft.com/en-us/library/yh598w02.aspx
Вопрос: Что такое право способ изменить текстовое поле от Жирный к Regular через определенные промежутки времени? Мой метод нарушает какие-либо правила или рискует утечкой памяти или конфликтом, потому что я не использую «использование», и есть ли «правильный» способ с использованием «Использования»? Помните это обновление каждую секунду ... поэтому я, вероятно, собираю сборщик мусора, но какие другие побочные эффекты будут укусить меня?
Вы можете удалить предыдущий шрифт перед установкой нового. 'Font f = QuickStatusTextBox.Font; QuickStatusTextBox.Font = новый шрифт («Tahoma», 10, FontStyle.Bold); f.Dispose(); ' –
Что касается вашего вопроса о том, нужно ли удалять шрифты или нет: [« Когда звонить Dispose »] (http://blogs.msdn.com/b/kimhamil/archive/2008/11/05/ когда к вызова Dispose.aspx) утверждает, что вы не должны распоряжаться шрифтами, если у вас не возникнут проблемы. Утилизация шрифтов, которые на самом деле все еще используются элементами управления, может открыть только другие can-o-worms. (Обратите внимание, что в примере MSDN вы связаны, объект Font не «отдан» к элементу управления, так что пример метод сохраняет бесспорное право собственности о том, что шрифте.) – elgonzo
Я не уверен, сколько шрифтов вы используете, но почему бы не хранить их в некоторых статических переменных/статических списках, а не восстанавливать их каждый раз, когда вы вызываете ваши методы, связанные с шрифтом. Таким образом, вам не придется слишком беспокоиться о связанных с шрифтом утечках. – elgonzo