如何用滚轮滚动标签控件,只要我在c#中选择标签
本文关键字:标签 选择 何用滚 滚动 控件 | 更新日期: 2023-09-27 18:18:48
在我的应用程序中有许多组合框控件。我想水平滚动以访问所有组合框。但问题是,当我在选项卡控件中选择一个特定的选项卡页面时,它不能使用鼠标滚轮滚动,但当我在选项卡控件中选择某些内容后,它允许我使用滚轮滚动。
有人能给我一个解决方案,详细解释我应该把代码部分放在哪里?
谢谢!
{
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 );
}
我假设您在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
事件:)