как мне изменить цвет флажка на темно-серый (отключить подобный) в c #?

#c# #winforms #checkbox

#c# #winforms #флажок

Вопрос:

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

*. пользовательское дерево флажков — это несколько флажков, расположенных в разных местах формы..

как я могу это сделать?

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

1. Вероятно, вам следует пометить этот WinForms

2. Вы имеете в виду отключить его? Или просто изменить его цвет?

Ответ №1:

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

Измените фоновое изображение или цвет кнопки для таких событий, как «button1_Click».

Внутри события вы можете создать флаг, указывающий, установлен он или нет, и изменять его при каждом событии щелчка. Когда флаг имеет значение «true», фоновым изображением будет изображение с буквой «V», а когда оно «false», оно будет изменено на изображение без буквы «V».

Вместо вызова checkBox1.Checked вы можете проверить, является ли флаг true или false .

Если вы хотите, вы можете подготовить свою серую кнопку / флажок из этого изображения:
(источник: катцер в www.uni-graz.at)

если вам нужна помощь в создании 2 изображений, вы можете написать мне по электронной почте, и я это сделаю.

Код может быть таким:

 //"checked" and "notChecked" are the images names.


private void button1_Click(object sender, EventArgs e)
{
   if(checkedFlag == true)
   {
    button1.BackgroundImage = Properties.Resources.notchecked;
    checkedFlag = false;
   }     
   else
   {
    button1.BackgroundImage = Properties.Resources.checked;
    checkedFlag = true;
   }
}
  

Вам нужно только установить начальное значение флага как false и сделать изображение центрированным или растянутым.