【发布时间】:2019-08-13 15:13:26
【问题描述】:
我制作了自定义复选框树,我希望第一个复选框是深灰色而不是白色(复选框本身不是他的文本..)
*。自定义复选框树是几个复选框,它们在表单中的不同位置排序..
我该怎么做?
【问题讨论】:
-
你应该标记这个 WinForms
-
您的意思是禁用它吗?或者只是改变它的颜色?
我制作了自定义复选框树,我希望第一个复选框是深灰色而不是白色(复选框本身不是他的文本..)
*。自定义复选框树是几个复选框,它们在表单中的不同位置排序..
我该怎么做?
【问题讨论】:
我认为没有直接的方法可以做到这一点。但是,您可以使用 Button 和 Label 制作自己的 CheckBox。
在“button1_Click”等事件上更改按钮背景图像或颜色。
在事件中,您可以制作一个标志,表明它是否已选中,并在每次点击事件时更改它。当标志为“真”时,背景图像将是带有“V”的图像,当它为“假”时,它将变为没有“V”的图像。
您可以检查标志是真还是假,而不是调用 checkBox1.Checked。
(来源:katzer at 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;
}
}
只需要将flag起始值设为false,并使图片居中或拉伸即可。
【讨论】: