列舉的好處在於使值可命名具有意義
例如
TextBox1.ForeColor = Color.Yellow;
如果想讓使用者自己改顏色,不用多想很自然會放個下拉選單
固定幾個不會變動的話,就直接把項目add進items
DropDownList1.Items.Add("Red");
DropDownList1.Items.Add("Blue");
DropDownList1.Items.Add("Green");
...
選完之後呢就用switch
switch (DropDownList1.SelectedValue) {
case "Red":
TextBox1.ForeColor = Color.Red;
break;
case "Blue":
TextBox1.ForeColor = Color.Blue;
break;
case "Green":
TextBox1.ForeColor = Color.Green;
break;
}
等等...如果我要把所有顏色都列出來呢?
難道有幾個顏色就case...
歐弗寇斯納特
//將列舉名稱加入下拉選單
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
//列舉型別 KnownColor 已知的系統色彩,Color 是結構型別
foreach (string name in Enum.GetNames(typeof(KnownColor))) {
DropDownList1.Items.Add(name);
}
}
}
//將下拉選單值取出並給物件屬性設定列舉值
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) {
TextBox1.ForeColor = Color.FromKnownColor((KnownColor)Enum.Parse(typeof(KnownColor), DropDownList1.SelectedValue, false));
}
以上
沒有留言:
張貼留言