C#WF阻止跟踪栏获取鼠标滚轮事件

时间:2017-05-20 08:10:48

标签: c# windows-forms-designer mousewheel

我在C#中有一个WindowsForms UI。我有一个Panel和一个PictureBox。 我只是按表单获取鼠标滚轮事件,然后在面板中缩放PictureBox

    public MainWindow()
    {
        InitializeComponent();
        this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.zoom_handler);// Capture Mouse wheel event
    }
问题是,当我使用Trackbar时,Trackbar会获得mouseWheel事件,我无法再缩放图像。我无法通过单击PictureBox或Panel来释放它。现在我必须做什么?

2 个答案:

答案 0 :(得分:1)

尝试以这种方式禁用轨道栏的mouseWheel:

trackBar1.MouseWheel += new MouseEventHandler(Disable_MouseWheel);



private void Disable_MouseWheel(object sender, EventArgs e)
{
    HandledMouseEventArgs ee = (HandledMouseEventArgs)e;
    ee.Handled = true;
}

答案 1 :(得分:0)

最后我找到了答案。

    public MainWindow()
    {
        InitializeComponent();

        this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.zoom_handler);// Capture Mouse wheel event
        mytrackbar.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.zoom_handler);// Capture Mouse wheel event
        mytrackbar.MouseWheel += (sender, e) => ((HandledMouseEventArgs)e).Handled = true;
    }

如果你想用鼠标滚轮禁用轨迹栏滚动,最后一行就足够了。但是使用该行可以禁用鼠标滚轮事件,直到您专注于具有鼠标滚轮事件的其他控件。如果你在一些无法获得焦点的控制(或可能是形式)上使用鼠标滚轮事件,你必须在轨迹栏鼠标滚轮事件上调用你的功能。

相关问题