Kar*_*hik 9 .net c# tabcontrol focus winforms
我有一个标签控件,需要删除所选标签周围的虚线焦点矩形.
我已将TabControl的TabStop属性设置为false.但是,如果单击选项卡并Tab按键,则会在tabname周围显示虚线矩形.
我试过创建自己的TabControl并试过这个
class MyTabControl : TabControl
{
public MyTabControl()
{
TabStop = false;
DrawMode = TabDrawMode.OwnerDrawFixed;
DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem);
Invalidate();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,仍然会出现虚线矩形.
我也尝试重写该MyTabControl.OnPaint()方法,但它没有帮助.
有没有办法实现这个目标?
将焦点设置为选项卡而不是标题(像这样)
private void tabControl1_Click(object sender, EventArgs e)
{
(sender as TabControl).SelectedTab.Focus();
}
Run Code Online (Sandbox Code Playgroud)
您将看到一毫秒的虚线矩形,一旦执行上述事件,它就会消失。
另外,要删除加载时默认选择的选项卡的虚线矩形
private void tabControl1_Enter(object sender, EventArgs e)
{
(sender as TabControl).SelectedTab.Focus();
}
Run Code Online (Sandbox Code Playgroud)
这两个改变都对我有用!希望它对某人有帮助。
是的,DrawItem 事件。你没有发布它,不可能猜出它有什么问题。只要确保您没有调用e.DrawFocusRectangle(), 可能会在您复制 MSDN 示例代码时出现。只需删除该语句就足够了。考虑使用不同的背景颜色或文本字体样式作为替代方案,这样焦点提示就不会完全丢失。
| 归档时间: |
|
| 查看次数: |
3549 次 |
| 最近记录: |