筆記:C# 動態建立事件。
1.建立一個 Window 應用程式。
2.拉一個 groupBox ,並且放入幾個 TextBox 及 ComboBox 排成一直行。
3.接下來完成下面的 code ,就可以用上下鍵在各個 TextBox 間移動。
private void
Form1_Load(object sender, EventArgs e)
{
// 跑回圈。
//
groupBox1.Controls 的 Controls 代表
groupBox 中所有物件。
foreach
(Control ctl in groupBox1.Controls)
{
// 針對不同的物件,各自動態建立事件。
if
(ctl is TextBox)
{
//
Form Load 時動態建立 txt_KeyDown 事件。
// 打到 += 之後(↓這裡),按下 Tab鍵,便會自動產生事件。
((TextBox)ctl).KeyDown += new KeyEventHandler(txt_KeyDown);
//
Form Load 時動態建立 txt_GotFocus 事件。
((TextBox)ctl).GotFocus += new EventHandler(txt_GotFocus);
}
else
if (ctl is
ComboBox)
{
//
Form Load 時動態建立 txt_KeyDown 事件。
((ComboBox)ctl).KeyDown += new KeyEventHandler(txt_KeyDown);
//
Form Load 時動態建立 txt_GotFocus 事件。
((ComboBox)ctl).GotFocus +=
new EventHandler(txt_GotFocus);
}
}
}
void txt_GotFocus(object sender, EventArgs
e)
{
// 宣告 txt,將 sender 轉型成 TextBox 後,用 txt 承接。
// 這種轉型的方法,看很多次,還是不懂啊....
TextBox txt = (TextBox)sender;
txt.SelectAll();
}
private void
txt_KeyDown(object sender, KeyEventArgs e)
{
// C# 的 select
case
switch
(e.KeyCode)
{
case
Keys.Down:
case
Keys.Return:
//
送出 Tab 鍵的訊號
SendKeys.Send("{Tab}");
break;
case
Keys.Up:
//
送出 Shift + Tab 鍵的訊號
//
「+」號代表 Shift鍵
SendKeys.Send("+{Tab}");
break;
default:
break;
}
}
沒有留言:
張貼留言