歡迎跟我連絡

本頁最下方有Web MSN可以直接跟我交談喔!
免安裝程式...哈哈 歡迎聊天

2008年3月13日 星期四

一個縮減程式碼的好方法 Controls.Find In C#

有時候在設計UI(User Interface)會有大量類似相對的元件,像是下圖所示,User可藉由ComboBox的選項改變來控制Focus於哪一個Button.

如果選擇Button3,程式就會將Focus轉移以便提示User要按哪一個Button.如下圖

所以你就會用傳統的方式寫下一段像這個樣子的程式碼 :
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
   if (comboBox1.SelectedIndex == 0)
   {
      button1.Focus();
   }
   else if (comboBox1.SelectedIndex == 1)
   {
      button2.Focus();
   }
   else if (comboBox1.SelectedIndex == 2)
   {
      button3.Focus();
   }
   else
   {
      button4.Focus();
   }
}
雖然這樣寫,看起來沒什麼不好,又淺顯易懂,但是.Net Framework中許多好東西你都丟棄了,白白Install那麼多元件,浪費了那麼多硬碟空間,看看Controls.Find()怎麼幫你做到,以下就是程式碼 :
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
   this.Controls.Find(comboBox1.SelectedItem.ToString(), true)[0].Focus();
}
怎樣感受到這樣的威力了嗎?

0 個回應:

MSN狀態(我在線上時,可以跟我交談喔)