我在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来释放它。现在我必须做什么?
答案 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;
}
如果你想用鼠标滚轮禁用轨迹栏滚动,最后一行就足够了。但是使用该行可以禁用鼠标滚轮事件,直到您专注于具有鼠标滚轮事件的其他控件。如果你在一些无法获得焦点的控制(或可能是形式)上使用鼠标滚轮事件,你必须在轨迹栏鼠标滚轮事件上调用你的功能。