我在Panel上繪圖,使用滾輪控制縮放,在絕大多數電腦上運行都沒有問題,但少數Win7和Windows2012上出現捕捉不到滾輪事件的情況,昨天又發現一臺電腦又這樣的問題,Windows2012新裝系統,寫測驗代碼如下:
public partial class Form1:Form
{
int tick = 0;
public Form1()
{
InitializeComponent();
this.panel1.MouseWheel += new MouseEventHandler(Control_MouseWheel);
this.panel1.MouseDown +=new MouseEventHandler(Control_MouseDown);
this.listBox1.MouseWheel += new MouseEventHandler(Control_MouseWheel);
this.listBox1.MouseDown += new MouseEventHandler(Control_MouseDown);
this.pictureBox1.MouseWheel += new MouseEventHandler(Control_MouseWheel);
this.pictureBox1.MouseDown += new MouseEventHandler(Control_MouseDown);
}
void Control_MouseDown(object sender,MouseEventArgs e)
{
tick++;
this.Text = ((System.Windows.Forms.Control)sender).Name + tick.ToString();
}
void Control_MouseWheel(object sender,MouseEventArgs e)
{
if(e.Delta > 0)
{
tick++;
}
else if(e.Delta < 0)
{
tick--;
}
else
{
tick = 0;
}
this.Text = ((System.Windows.Forms.Control)sender).Name + tick.ToString();
}
}
正常情況下,listBox1、panel1、pictureBox1都能捕捉到MouseWheel事件,但目標電腦始終只有listBox1事件,即使滑鼠在Panel上方也仍然是listBox的滾輪事件,我知道這是因為Panel和PictureBox是無焦點控制元件,但問題是90%以上的電腦他們都可以正常捕捉滾輪事件的,問題出在哪里,怎么解決呢?
uj5u.com熱心網友回復:
猜 這些系統有特殊的主題,在主題里面重寫了樣式測驗方法:通過spyxx工具查看對應軟體收到的window訊息
uj5u.com熱心網友回復:
換主題試過,沒效果,測驗panel沒收到滾輪訊息
uj5u.com熱心網友回復:
換多少個主題?多換換用spyxx了沒?能否收到資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/49609.html
標籤:C#
