{
Control vControl = sender as Control;
PageData = vControl.DataContext as MonitorInput;
RefreshForm();
}
private void bt_Remove_Click(object sender, RoutedEventArgs e)
{
List.Remove(PageData);
if (List.Count == 0)
{
PageData = null;
this.Close();
}
}
本人想问问高手们 Control vControl = sender as Control;是什么意思,有什么作用,为什么这么写?第二个bt_Remove_Click事件为什么不用这么写?能不能详细的讲一下
50
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter)
{
textBox1.Text = “I have finished”;
}
}
这里改变textBox1的值而不是用sender原因是你能够拿到textBox的ID,也就是 textBox1。并且你把上面的函数改成
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter)
{
TextBox tb=sender as TextBox();
tb.Text = “I have finished”;
}
}
效果是一样的。
再说什么时候需要转换:当你不知道是界面上哪一个控件触发这个事件的时候,也就是你不能确定控件的ID的时候,就需要转换。一个场景:
计算器里面有1-9个数字,每一个数字都是一个Button,但我们不会为每一个Button绑定一个click事件,也就是全部的Button的click事件是同一个,暂时就用你写的那个 :private void Label_MouseDown_1(object sender, MouseButtonEventArgs e)。
那么是界面上哪一个Button触发的这个事件,不清楚,但是又要将Button上的数字取出来,就需要用到转换,例如:
private void Label_MouseDown_1(object sender, MouseButtonEventArgs e)
{
Button btn=sneder as button,
string number = btn.Text; //知道是1-9个按钮中的某一个,但是不知道具体是哪一个,将Button上的数字取出来
}