代码里实例化一个图片框,没加入窗体里
PictureBox S = new PictureBox();public MainForm(string[] args)
{
InitializeComponent();
S = A;//对上面对象赋值
}A 是拉入窗体里的图片框下面是在窗体加载时绑定事件到上面实例化的图片框Sprivate void MainForm_Load(object sender, EventArgs e)
{ this.S.MouseMove += new MouseEventHandler(S_MouseMove);
this.S.MouseClick += new MouseEventHandler(S_MouseClick);
this.S.MouseLeave += new EventHandler(S_MouseLeave);}这样对 S 的操作等于对 A 的操作。绑定在 S 上的事件在 A 也能起作用。 S = B;对 S 重新赋值后,对 S 的操作等于对 B 的操作,但本来绑定在 S 上的事件却不起作用了。
PictureBox S = new PictureBox();public MainForm(string[] args)
{
InitializeComponent();
S = A;//对上面对象赋值
}A 是拉入窗体里的图片框下面是在窗体加载时绑定事件到上面实例化的图片框Sprivate void MainForm_Load(object sender, EventArgs e)
{ this.S.MouseMove += new MouseEventHandler(S_MouseMove);
this.S.MouseClick += new MouseEventHandler(S_MouseClick);
this.S.MouseLeave += new EventHandler(S_MouseLeave);}这样对 S 的操作等于对 A 的操作。绑定在 S 上的事件在 A 也能起作用。 S = B;对 S 重新赋值后,对 S 的操作等于对 B 的操作,但本来绑定在 S 上的事件却不起作用了。
实际需要,画面上两个框位置大小不一样,要切换显示。对 S 赋值后,对 S 的操作等于对 B 的操作,里面是什么原理呀?事件不是绑在 S 上的吗?是实际上绑在 A 上?还是执行上顺序的问题?
Student A = new Student("张三");
Student B = new Student("李四");
Student C = new Student("王五");C = B;
C = A;C.Say("Hello");结果是 张三 在Say Hello。实例的事件和实例的方法是类似的,它们都是作用在实例上。(虽然这不是精准的说法)
那是不是说对S绑定事件后,S=A后;则事件是绑定在A上。之后再S=B,事件仍绑定在A上吗
s=b
这个时候s所指向的对象就是b了
之前 s有没有绑定事件和b没有什么关系
可是之前是先绑定事件再把A赋给S,事件有绑定到A上