c#Windows窗体复选框文本在禁用控件时消失
本文关键字:控件 消失 窗体 复选框 文本 c#Windows | 更新日期: 2023-09-27 18:26:50
我有一个以前从未注意到的奇怪问题。我有一个复选框的形式,其背景颜色是网络:黑色。我的复选框文本是web:gold。除了未启用该复选框外,其他一切都很好。如果我做
checkbox.Enabled = false;
则与该文本框关联的文本不会显示!我以前从未注意到这一点,现在我需要这个,但不知道如何解决。有什么想法吗?感谢
您可以响应控件的Paint
事件来执行自定义呈现。下面是一个自定义绘制方法的例子,当复选框被禁用时,它只会像往常一样绘制文本:
private void checkBox1_Paint(object sender, PaintEventArgs e)
{
base.OnPaint(e);
if (!checkBox1.Enabled)
{
CheckBox checkbox = sender as CheckBox;
int x = ClientRectangle.X + CheckBoxRenderer.GetGlyphSize(
e.Graphics, CheckBoxState.UncheckedNormal).Width + 1;
int y = ClientRectangle.Y + 1;
TextRenderer.DrawText(e.Graphics, checkbox.Text,
checkbox.Font, new Point(x, y), checkbox.ForeColor,
TextFormatFlags.LeftAndRightPadding);
}
}
(确切的X和Y坐标可能需要根据您的字体和其他渲染特性进行调整。)
可以在控件的"属性"窗口中设置"绘制"方法,该方法位于"事件"区域的"外观"下。您可以双击空白区域来创建一个空的事件处理程序,然后转到代码。