在我的应用程序中有许多组合框控件。我想水平滚动以访问所有组合框。但问题是当我在标签控件中选择一个特定的标签页时,它无法使用鼠标滚轮滚动浏览,但在我选择该标签控件内的内容后,它允许我使用滚轮滚动。
有人可以给我一个解决方案,详细说明我应该在哪里放置代码部分?
谢谢!
{
private IContainer components;
public Form1()
{
InitializeComponent();
// tabControl2.Click += (s, e) => tabControl2.Focus();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
答案 0 :(得分:3)
我假设您在winforms下执行此操作。
这是因为Tab控件被视为容器,因此除非明确这样做,否则不会获得焦点。
试试这个:
public Form1()
{
InitializeComponents();
// register the event handler here
tabPage.Click += (s, e) => tabPage.Focus(); // this line can be omitted
tabPage.MouseEnter += (s, e) => tabPage.Focus();
}
以上是仅适用于一个标签的代码,如果您希望它适用于标签控件中的所有标签,只需使用foreach订阅所有标签页的MouseEnter
事件:
public Form1()
{
InitializeComponents();
foreach (TabPage tabPage in TabControl.TabPages)
{
tabPage.MouseEnter += (s, e) => tabPage.Focus();
}
}
如果你有一些动态创建的标签页,也为他们订阅MouseEnter
事件:)