有時候在設計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();
}
怎樣感受到這樣的威力了嗎?
歡迎跟我連絡
本頁最下方有Web MSN可以直接跟我交談喔!
免安裝程式...哈哈 歡迎聊天
免安裝程式...哈哈 歡迎聊天
2008年3月13日 星期四
一個縮減程式碼的好方法 Controls.Find In C#
訂閱:
張貼留言 (Atom)
0 個回應:
張貼留言