自己定义 委托 和事件后,怎么调用 ? 不通过比如this.button1.Click += new System.EventHandler(this.button1_Click),在 button1_Click() 这个函数中实现,要鼠标点击 我这个myControl1 所在的区域,自动发生。
或者说 其实我的问题就是如何做一个this.button1.Click 这样一个东西,鼠标点击,它就有反应。
9 个解决方案
#1
控件本身就有click事件吧,你委托出来在你说的button1_Click() 这个函数里写Messagebox的show出来就行了啊,还是你不知道怎么在控件中写委托么
#2
编写事件处理程序,并且绑定给事件是外部调用程序的事情。
你只要定义好事件,并且触发它就可以了。
你只要定义好事件,并且触发它就可以了。
#3
1.你的控件继承自buttoncontrol;
2.你的控件重写onclick方法;
3.你的控件定了了委托和事件;
4.外部定义好事件处理器;
5.将事件处理器注册到控件的事件;
控件里定义委托是为了将将时间处理器注册到事件;
外部将处理器注册到控件,相当于订阅了控件的点击事件,当点击事件触发的时候会运行你的处理器。
其实,事件本身就是一个观察者模式。
2.你的控件重写onclick方法;
3.你的控件定了了委托和事件;
4.外部定义好事件处理器;
5.将事件处理器注册到控件的事件;
控件里定义委托是为了将将时间处理器注册到事件;
外部将处理器注册到控件,相当于订阅了控件的点击事件,当点击事件触发的时候会运行你的处理器。
其实,事件本身就是一个观察者模式。
#4
"自己定义 委托 和事件后,怎么调用 ? 不通过比如this.button1.Click += new System.EventHandler(this.button1_Click),在 button1_Click() 这个函数中实现,要鼠标点击 我这个myControl1 所在的区域,自动发生。"
你不注册,当click事件触发的时候怎么去调用你写的this.button1_Click方法?
你不注册,当click事件触发的时候怎么去调用你写的this.button1_Click方法?
#5
自定义控件?你是说代码生成的吗?你在创建他的时候可以添加 我拿vb举例 刚好我前面也刚学会
然后如果你要在myControl1_click(xxxxxxxxxxxx)触发时,调用 btn.click属性的话 你可以这样
我是菜鸟,不知道我理解的对不对,见谅。我也是发发帖子混点分,然后去发帖求助其他问题 哈哈
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim btn As Button = New Button
btn.Text = "我是按钮"
Me.Controls.Add(btn)
AddHandler btn.Click, AddressOf a
end sub
Sub btn_click()
MsgBox("我是事件")
End Sub
然后如果你要在myControl1_click(xxxxxxxxxxxx)触发时,调用 btn.click属性的话 你可以这样
Public Sub myControl1_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mycontrol1.click
btn_click()’在这里调用一遍btn_click
‘myControl1_click里的其他代码
end sub
我是菜鸟,不知道我理解的对不对,见谅。我也是发发帖子混点分,然后去发帖求助其他问题 哈哈
#6
AddHandler btn.Click, AddressOf btn_click
#7
比如 我自定义的控件嘛,我要鼠标双击它 然后它作出反应。 这个要怎么实现, 好像button按钮的click是内置好的嘛,我自己想做一个,但是不知道怎么实现。
#8
你继承contrlor类,或者buttonbase类里面就有很多事件啊。
1.你写个双击处理函数;
2.注册到双击事件里就行。
#9
重写自己定义控件的OnClick
class MyCtrl:Control{
override OnClick(e){
base.OnClick(e);
MessageBox.Show("this.Name");
}
}
#1
控件本身就有click事件吧,你委托出来在你说的button1_Click() 这个函数里写Messagebox的show出来就行了啊,还是你不知道怎么在控件中写委托么
#2
编写事件处理程序,并且绑定给事件是外部调用程序的事情。
你只要定义好事件,并且触发它就可以了。
你只要定义好事件,并且触发它就可以了。
#3
1.你的控件继承自buttoncontrol;
2.你的控件重写onclick方法;
3.你的控件定了了委托和事件;
4.外部定义好事件处理器;
5.将事件处理器注册到控件的事件;
控件里定义委托是为了将将时间处理器注册到事件;
外部将处理器注册到控件,相当于订阅了控件的点击事件,当点击事件触发的时候会运行你的处理器。
其实,事件本身就是一个观察者模式。
2.你的控件重写onclick方法;
3.你的控件定了了委托和事件;
4.外部定义好事件处理器;
5.将事件处理器注册到控件的事件;
控件里定义委托是为了将将时间处理器注册到事件;
外部将处理器注册到控件,相当于订阅了控件的点击事件,当点击事件触发的时候会运行你的处理器。
其实,事件本身就是一个观察者模式。
#4
"自己定义 委托 和事件后,怎么调用 ? 不通过比如this.button1.Click += new System.EventHandler(this.button1_Click),在 button1_Click() 这个函数中实现,要鼠标点击 我这个myControl1 所在的区域,自动发生。"
你不注册,当click事件触发的时候怎么去调用你写的this.button1_Click方法?
你不注册,当click事件触发的时候怎么去调用你写的this.button1_Click方法?
#5
自定义控件?你是说代码生成的吗?你在创建他的时候可以添加 我拿vb举例 刚好我前面也刚学会
然后如果你要在myControl1_click(xxxxxxxxxxxx)触发时,调用 btn.click属性的话 你可以这样
我是菜鸟,不知道我理解的对不对,见谅。我也是发发帖子混点分,然后去发帖求助其他问题 哈哈
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim btn As Button = New Button
btn.Text = "我是按钮"
Me.Controls.Add(btn)
AddHandler btn.Click, AddressOf a
end sub
Sub btn_click()
MsgBox("我是事件")
End Sub
然后如果你要在myControl1_click(xxxxxxxxxxxx)触发时,调用 btn.click属性的话 你可以这样
Public Sub myControl1_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mycontrol1.click
btn_click()’在这里调用一遍btn_click
‘myControl1_click里的其他代码
end sub
我是菜鸟,不知道我理解的对不对,见谅。我也是发发帖子混点分,然后去发帖求助其他问题 哈哈
#6
AddHandler btn.Click, AddressOf btn_click
#7
1.你的控件继承自buttoncontrol;
2.你的控件重写onclick方法;
3.你的控件定了了委托和事件;
4.外部定义好事件处理器;
5.将事件处理器注册到控件的事件;
控件里定义委托是为了将将时间处理器注册到事件;
外部将处理器注册到控件,相当于订阅了控件的点击事件,当点击事件触发的时候会运行你的处理器。
其实,事件本身就是一个观察者模式。
#8
比如 我自定义的控件嘛,我要鼠标双击它 然后它作出反应。 这个要怎么实现, 好像button按钮的click是内置好的嘛,我自己想做一个,但是不知道怎么实现。
1.你的控件继承自buttoncontrol;
2.你的控件重写onclick方法;
3.你的控件定了了委托和事件;
4.外部定义好事件处理器;
5.将事件处理器注册到控件的事件;
控件里定义委托是为了将将时间处理器注册到事件;
外部将处理器注册到控件,相当于订阅了控件的点击事件,当点击事件触发的时候会运行你的处理器。
其实,事件本身就是一个观察者模式。
你继承contrlor类,或者buttonbase类里面就有很多事件啊。
1.你写个双击处理函数;
2.注册到双击事件里就行。
#9
重写自己定义控件的OnClick
class MyCtrl:Control{
override OnClick(e){
base.OnClick(e);
MessageBox.Show("this.Name");
}
}