如何用滚轮滚动标签控件,只要我在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 );
    }

如何用滚轮滚动标签控件,只要我在c#中选择标签

我假设您在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事件:)