[英]C# Assigning one button to another
我有一個GUI應用程序,添加了一個按鈕。 在幾個插件dll中,創建了一個新按鈕,需要將其添加到GUI中以代替現有按鈕。
有沒有辦法簡單地說ButtonA = ButtonB? 或者我是否必須在運行時從GUI中刪除該按鈕然后添加新按鈕?
謝謝。
或者你可以將它鏈接到另一個處理程序,例如:
舊的Click事件處理程序
private void ButtonA_Click(object sender, EventArgs e)
{
//Do sth
}
您的新Click事件處理程序(如果您創建一個新按鈕)
private void ButtonB_Click(object sender, EventArgs e)
{
//Do sth
}
然后你需要刪除第一個處理程序並添加新的處理程序:
ButtonA.Click -= this.ButtonA_Click;
ButtonA.Click += new EventHandler(ButtonB_Click);
您按鈕被添加到某個父級(例如,表單)。 這意味着您必須從Form的Controls集合中刪除原始按鈕,然后添加新按鈕。 或者,您可以替換Controls集合中的按鈕。
假設在遍歷集合之后,您發現按鈕是第5個元素,您可以執行以下操作:
this.Controls[4] = ButtonB;
我不是100%確定這是否意味着您必須手動使屏幕無效以更新GUI。 在這種情況下,調用ButtonB.Invalidate();
將您感興趣的屬性從第一個按鈕復制到創建的第二個按鈕,然后從Controls集合中刪除第一個按鈕或將.Visible設置為false。
至於事件,你會遇到問題,因為你必須手動調用舊的按鈕事件處理程序 - 在.NET中無法讀取OnClick(或任何其他事件)訂閱者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.