亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 更改方法的 EventArgs

C# 更改方法的 EventArgs

C#
繁星淼淼 2023-07-09 10:16:36
我正在開發一個 Windows 窗體應用程序,我想將類型參數傳遞給MouseClick事件而不是,但當我這樣做時,調試器會發出委托錯誤。PictureboxMouseEventArgsEventArgsvoid PictureBox1Click(object sender, MouseEventArgs e){    // Some code}///////// imageBox// this.imageBox.Location = new System.Drawing.Point(12, 12);this.imageBox.Name = "imageBox";this.imageBox.Size = new System.Drawing.Size(1758, 829);this.imageBox.TabIndex = 0;this.imageBox.TabStop = false;this.imageBox.Click += new System.EventHandler(this.PictureBox1Click);// 
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

當鼠標單擊引發單擊事件時,如果您處理Click事件,則 的運行時類型e將MouseEventArgs如 Jimi 在評論中提到的那樣。


但在某些控件中,例如Button,您可以Click在沒有實際鼠標單擊的情況下引發事件,例如通過調用button1.PerformClick()或 當按鈕是AcceptButton表單的并且您按 時Enter,或者如果您按按鈕的助記鍵組合或當按鈕具有焦點時然后你按Space. 在這種情況下, 的運行時類型e是EventArgs。


如果您對鼠標單擊感興趣并且希望接收eas MouseEventArgs,那么您應該處理MouseClick事件。


例如:


picttureBox1.MouseClick += PicttureBox1_MouseClick;

進而:


private void PicttureBox1_MouseClick(object sender, MouseEventArgs e)

{


}


查看完整回答
反對 回復 2023-07-09
?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

您可以從傳遞 mouseclick 事件參數的父控件捕獲鼠標單擊事件,檢查鼠標位置是否在圖片框內并從那里繼續?!



查看完整回答
反對 回復 2023-07-09
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

存在哪些事件、它們采用哪些參數、以及何時調用它們以及賦予它們哪些值完全取決于該類的作者。作為此代碼的單純用戶,您無法更改它。

您可以創建 Picature Box 的子類,在其中添加您自己的事件“ClickWithExtraArguments”或類似的事件。但提高它來代替默認值可能并不容易。有時“RaiseEvent[X]”代碼被標記為受保護,因此您可以覆蓋它。RaiseMouseEvent 就是其中之一,但這確實深入到事件處理。

您試圖通過事件參數提供什么信息?您不能簡單地檢索現有 Click 事件處理程序中的信息嗎?


查看完整回答
反對 回復 2023-07-09
  • 3 回答
  • 0 關注
  • 173 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號