我正在開發Windows C#,VS 2008應用程序。我有一個MDI容器窗體,在點擊按鈕期間,我在運行時添加一個新窗體。當創建子窗體時,我會在運行時爲其添加面板控件和圖片框控件。即使鼠標沒有移動,Picturebox mousemove事件也會被觸發
我添加鼠標事件處理程序,用於鼠標向上,鼠標向下和鼠標移動的圖片框。如預期的那樣鼠標上下滑動,但鼠標移動事件在鼠標懸停在畫框上而不移動時持續發射。我知道事件正在被解僱,因爲在鼠標移動事件中,我保留一個計數器變量,並在每次調用mousemove事件時將值更新並更新爲標籤。
爲什麼會發生這種情況?我正在使用的代碼如下。
感謝
Form frm = new Form();
frm.Deactivate += new EventHandler(MDIChildDeactivate);
PictureBox pi = new PictureBox();
pi.Dock = DockStyle.Fill;
pi.MouseUp += new MouseEventHandler(ImageMouseUp);
pi.MouseDown += new MouseEventHandler(ImageMouseDown);
pi.MouseMove += new MouseEventHandler(ImageMouseMove);
pi.Paint += new PaintEventHandler(CanvasPaint);
pi.KeyDown += new KeyEventHandler(ImageKeyDown);
pi.KeyPress += new KeyPressEventHandler(ImageKeyPress);
/////////////////////////////////////////////////////////
pi.PreviewKeyDown += new PreviewKeyDownEventHandler(pi_PreviewKeyDown);
/////////////////////////////////////////////////////////
if (!IsTabbedMdi)
frm.ClientSize = size;
frm.AutoScroll = true;
pi.Name = ProjectFileName;
Panel pnl = new Panel();
pnl.Dock = DockStyle.None;
pnl.Size = WarpArt.Properties.Resources.GreyCheckerBoard.Size;
pi.Image = WarpArt.Properties.Resources.GreyCheckerBoard;
pnl.AutoScroll = true;
pnl.HorizontalScroll.Visible = true;
pnl.VerticalScroll.Visible = true;
pnl.AutoSizeMode = AutoSizeMode.GrowAndShrink;
pnl.Name = ProjectFileName;
pnl.Controls.Add(pi);
frm.Controls.Add(pnl);
frm.MdiParent = this;
frm.Show();
事件處理程序代碼將很有用。 – alexD 2011-06-08 06:34:23
在我的事件處理程序中我只有在每次調用ImageMouseMove函數時將計數更新到標籤的時刻纔有以下代碼。 'count ++; lblCounter.Text = count.ToString();' – 2011-06-08 06:55:11
現在有同樣的問題,不知道如何解決它。 – Kosmos 2013-12-17 18:37:37