我在WPF窗口上有很多按鈕。爲了避免重複編碼相同的點擊事件,我希望它們都觸發相同的方法,並根據我所調用的按鈕採取適當的操作。從枚舉設置按鈕名稱
我知道我可以將發件人轉換爲按鈕,然後檢查名稱並從那裏發送代碼,但是必須將所有名稱硬編碼,如果按鈕被重命名爲某個階段。
這樣做的更好方法是什麼?例如,我可以從枚舉中命名按鈕嗎?或者是否可以通過直接實際引用按鈕來獲取檢查的按鈕名稱?
也許這樣的事情?
private void btnAddTerminatorElement_Click(object sender, RoutedEventArgs e)
{
MsoAutoShapeType shapeType;
switch (((Button)sender).Name)
{
case this.btnAddTerminatorElement.Name:
shapeType = MsoAutoShapeType.msoShapeFlowchartTerminator;
break;
}
CreateChartElement(this.targetWorksheet.Shapes.AddShape(MsoAutoShapeType.msoShapeFlowchartTerminator, 100, 100, 50, 50));
}
但這無法正常工作,是因爲需要比較恆定的...
您是否嘗試過使用Tag屬性來確定哪個按鈕被點擊?這樣你就不必擔心名稱的變化。 – Eirik