Winforms 当光标位于win forms复选框内时,高亮显示该复选框
我有一个没有指定文本的复选框。现在每当我按下这个复选框,它都不会突出显示。我甚至尝试在复选框中设置焦点。我在这个事件中检查了焦点,焦点在这个复选框中。如何使其高亮显示,以便用户知道光标位于复选框中 试着在复选框中加一个空格 或 将AutoSize设置为false 设置复选框的大小 然后WinForms可能会在某个地方绘制焦点ret 否则,您必须自定义绘制复选框,或者自己在复选框周围绘制焦点记录Winforms 当光标位于win forms复选框内时,高亮显示该复选框,winforms,Winforms,我有一个没有指定文本的复选框。现在每当我按下这个复选框,它都不会突出显示。我甚至尝试在复选框中设置焦点。我在这个事件中检查了焦点,焦点在这个复选框中。如何使其高亮显示,以便用户知道光标位于复选框中 试着在复选框中加一个空格 或 将AutoSize设置为false 设置复选框的大小 然后WinForms可能会在某个地方绘制焦点ret 否则,您必须自定义绘制复选框,或者自己在复选框周围绘制焦点记录 无论您做什么,它看起来都不太好,因为用户希望焦点rec围绕复选框的标签,而您希望有一个没有标签的复选框
无论您做什么,它看起来都不太好,因为用户希望焦点rec围绕复选框的标签,而您希望有一个没有标签的复选框。实际上突出显示在复选框的文本上,而不是复选框本身 因此,如果我是你,我会在复选框的背景中放置任何控件,并在复选框聚焦时为其提供焦点,以使其具有与默认控件相同的外观
它将以复选框突出显示的形式显示给最终用户。我通过下面提到的方法实现了这一点 使用面板。将复选框推到该面板内。设置面板的尺寸,使其看起来像复选框周围的矩形。在复选框中输入事件设置边框
BorderStyle.FixedSingle;
在复选框_Leave事件中,再次将边框设置为
BorderStyle.None;
这样,它会告诉用户焦点在复选框内。要使复选框突出显示,我让它在获得焦点时更改颜色,在失去焦点时更改颜色 此部分的格式为1.Designer.cs:
private void InitializeComponent()
{...
ckBox1.GotFocus += new System.EventHandler(checkBox_Highlight);
ckBox1.LostFocus += new System.EventHandler(checkBox_EndHighlight);
ckBox1.MouseHover += new System.EventHandler(checkBox_Highlight);
ckBox1.MouseLeave += new System.EventHandler(checkBox_EndHighlight);
}
本部分的格式为1:
private void checkBox_Highlight(object sender, EventArgs e)
{
CheckBox control = (CheckBox)sender;
control.FlatStyle = FlatStyle.Flat;
control.ForeColor = Color.Blue;
}
private void checkBox_EndHighlight(object sender, EventArgs e)
{
CheckBox control = (CheckBox)sender;
if (!control.Focused)
{
control.ForeColor = DefaultForeColor;
}
}
在切换时,这会在Enter和on Left的复选框下方放置一个浅蓝色阴影-至少在my Windows7上是这样:
...
checkBox1.Enter += new System.EventHandler(check_Enter);
checkBox1.Leave += new System.EventHandler(check_Leave);
...
private void check_Enter(object sender, EventArgs e)
{
((CheckBox)sender).BackColor = SystemColors.Highlight;
}
private void check_Leave(object sender, EventArgs e)
{
((CheckBox)sender).BackColor = Color.Transparent;
}
如何在复选框中放置空格。你的意思是说,在复选框中输入事件。你能告诉我如何绘制焦点矩形吗。我正在使用ControlPaint.DrawFocusRectangleGraphics,矩形。如何在复选框\输入事件中获取图形。据我所知,它在OnPaint事件中可用。我会这样做。感谢您指出。-1因为将焦点交给另一个控件将阻止空格键更改复选框的值。方法是,将比复选框大一点的按钮放在复选框后面。然后将他的flatStyle属性设置为flat,将foreColor属性设置为表单背景的相同颜色。然后,在按钮的click事件上,编写以下代码checkBox1.Checked=!复选框1.选中*这解决了lan Ringrose提到的错误。就这样