簡體   English   中英

C#將一個按鈕分配給另一個按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM