我目前有以下,我認爲這是非常繁瑣。我通常在表單上創建不同的按鈕,並通過傳遞一組按鈕來完成它。每個按鈕都有一組屬性來即時設置按鈕。多維枚舉Array列表
public enum BtnType { bOK , bCancel, bYes, bNo };
public enum bOk { Name = "OKBtn", Text = "OK" }
public enum bCancel { Name = "CancelBtn", Text = "Cancel" }
public enum bYes { Name = "YesBtn", Text = "Cancel" }
public static void SetButtons(BtnType[] _btnType, string onClick)
{
foreach (int i in _btnType)
{
switch (_btnType[i])
{
case BtnType.bOK:
{
btnp.Name = bOk.Name;
btnp.Text = bOk.Text;
}
break;
case BtnType.bCancel:
{
btnp.Name = bCancel.Name;
btnp.Text = bCancel.Text;
}
break;
case BtnType.bYes:
{
btnp.Name = bYes.Name;
btnp.Text = bYes.Text;
}
break;
}
}
然後我這樣稱呼它,它會爲我創建2個按鈕。
SetButtons(new BtnType[] { BtnType.bYes, BtnType.bNo });
我想完成的是以下,我找不到解決方案。
public enum BtnType { bOK = { Name = "OKBtn", Text = "OK" },
bCancel = {},
bYes = {},
bNo = {} };
public static void SetButtons(BtnType[] _btnType, string onClick)
{
foreach (int i in _btnType)
{
btnp.Name = _btnType[i].Name;
btnp.Text = _btnType[i].Text;
}
}
謝謝。
這看起來不像c#。它甚至編譯? –
您不能將值指定給C#中的枚舉個案。你需要使用類而不是枚舉。此外,你的循環迭代拋出值是完全錯誤的。用'foreach'你不會得到索引,而是一個'BtnType'對象。 –
字典可能是不錯的。 –