измените размер текста флажка с помощью кода на c #

#c# #winforms

#c# #winforms

Вопрос:

Я создаю много флажков динамически в c # (Windows forms). Я хочу назначить размеры текстов флажков. Но я не смог найти способ. Я хочу что-то подобное :

 CheckBox[] chk = new CheckBox[ff.documentColumnCount];     
chk[i].Font.Size = 8.5; // but of course this line doesn't work
  

что я могу с этим поделать, спасибо за помощь..

Комментарии:

1. -1 Если у вас есть два независимых сегмента кода, не используйте их в одном блоке кода

Ответ №1:

Возможно, что-то вроде этого:

 chk[i].Font = new Font(chk[i].Font.FontFamily, 8.5f);
  

Комментарии:

1. спасибо 🙂 правильное решение: chk [i] . Шрифт = новый шрифт (Font.FontFamily, 8.5f);

2. массив чекоксов не инициализирован

3. Я предположил, что опубликованный выше код был просто иллюстрацией того, что он хотел сделать, а не полным кодом, поскольку он явно просил установить размер флажков, а не как создать и инициализировать их массив.

Ответ №2:

Свойство Font является неизменяемым (см. Примечания). Вы должны назначить свойству Font новый экземпляр класса Font с нужными вам свойствами.

 chk[i].Font = new Font( chk[i].Font.FontFamily, 8.5 ); 
  

Комментарии:

1. chk[i] в правой части вызовет NullReferenceException исключение, потому что chk[i] равно нулю

2. @Artur — Я думаю, вы воспринимаете небольшой фрагмент кода слишком буквально. Я предполагаю, что это всего лишь пример того, что пытаются сделать, а не точный код.

3. иногда возникают такие вопросы, когда невозможно определить, допустил ли автор ошибку или просто пропустил ценный фрагмент кода

4. @ArturMustafin хорошо, я вижу, где вы могли интерпретировать это по-другому. Учитывая, что код даже не будет компилироваться (Size — свойство, доступное только для чтения), предполагать, что проблема заключается в NullReferenceException, немного сложно.

Ответ №3:

Вы не инициализировали массив. Вы только что объявили, что существует массив chk размера ff.DocumentCount

Попробуйте исправить это следующим образом:

 CheckBox[] chk = new CheckBox[ff.documentColumnCount];     
for(int i=0; i < ff.documentColumnCount; i  )
{
    chk[i] = new CheckBox() { Location = new Point(0, i * 50), Font = new Font(FontFamily.GenericSansSerif, 8.5f) };
}
  

Комментарии:

1. Вы должны указать размер в конструкторе. Size — это свойство системы, доступное только для чтения. Рисование.Шрифт.