您好,登錄后才能下訂單哦!
怎么在C#中使用Picturebox控件實現鼠標拖拽功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
首先在窗體設計器生成的代碼里面注冊picturebox的鼠標事件。注:網上說當你添加picturebox的時候,這個相應的鼠標事件就自動給添加上了,本人在實踐中一開始沒有手動去注冊此事件,結果實驗的時候對應的鼠標事件函數就是不觸發,后來翻看設計器自動生成的初始化模塊private void InitializeComponent() ,發現并沒有自動添加鼠標事件,自己手動添加后才順利運行,博友請先查看自己的有沒有自動生成,如果自動添加上了,就不用手動寫了。
注冊鼠標事件代碼實例(自動生成的部分已省略未寫):
private void InitializeComponent() { // // RealPlayWnd // this.RealPlayWnd.MouseUp += new MouseEventHandler(this.RealPlayWnd_MouseUp); this.RealPlayWnd.MouseDown += new MouseEventHandler(this.RealPlayWnd_MouseDown); this.RealPlayWnd.MouseMove += new MouseEventHandler(this.RealPlayWnd_MouseMove); }
實現代碼實例:
int xPos; int yPos; bool MoveFlag; //在picturebox的鼠標按下事件里,記錄三個變量. private void RealPlayWnd_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { MoveFlag = true;//已經按下. xPos = e.X;//當前x坐標. yPos = e.Y;//當前y坐標. } //在picturebox的鼠標按下事件里. private void RealPlayWnd_MouseUp(object sender, MouseEventArgs e) { MoveFlag = false; } //在picturebox鼠標移動 private void RealPlayWnd_MouseMove(object sender, MouseEventArgs e) { if (MoveFlag) { RealPlayWnd.Left += Convert.ToInt16(e.X - xPos);//設置x坐標. RealPlayWnd.Top += Convert.ToInt16(e.Y - yPos);//設置y坐標. } }
關于怎么在C#中使用Picturebox控件實現鼠標拖拽功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。