我想让一个按钮始终处在窗体的正中央
private void Form1_Resize(object sender, EventArgs e)
{
button1.Left = ((Form1)sender).Size.Width / 2;
button1.Top = ((Form1)sender).Size.Height / 2;
}
我就在resize事件里写代码。为什么我直接写Form1.不允许访问Size属性,只有写成((Form1)sender).才可以访问?
((Form1)sender)和Form1有什么区别?
private void Form1_Resize(object sender, EventArgs e)
{
button1.Left = ((Form1)sender).Size.Width / 2;
button1.Top = ((Form1)sender).Size.Height / 2;
}
我就在resize事件里写代码。为什么我直接写Form1.不允许访问Size属性,只有写成((Form1)sender).才可以访问?
((Form1)sender)和Form1有什么区别?
((Form1)sender) 是实例这里里面可以写成 this.Size.Width / 2;
sender as Form1
sender指的是事件的产生者及控件对象
private void Form1_Resize(object sender, EventArgs e)
sender是触发这个事件的实例,因为是Form1触发的,所以sender==this ,sender是object 类型
需要强制转换一下((Form1)sender) 建议采用(sender as Form1)的形式