狠心求救,事件处理问题啊!!!#··

hanniuniu 2003-08-14 10:19:53
如何使动态加载的控件响应事件
请写几句使
事件与事件处理程序相关联的语句
例如动态加载的Panel
既要用到它的Mousedown事件
又要用到它的Mousemove及Mouseup事件
我感觉 太难了
分全给你们了
...全文
116 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liumj2001 2003-08-15
  • 打赏
  • 举报
回复
用事件委托来动态委托动态控件事件。就可以了。
valleyecho 2003-08-14
  • 打赏
  • 举报
回复
能不能继承的方式来做.做一个控件包含所需的事件代码.再把这个控件动态加进去
LongBow007 2003-08-14
  • 打赏
  • 举报
回复
up
coffeedou 2003-08-14
  • 打赏
  • 举报
回复
关注
hanniuniu 2003-08-14
  • 打赏
  • 举报
回复
怎么
没人理我啊
``
pigpag 2003-08-14
  • 打赏
  • 举报
回复
楼主有没有MSDN啊,VB.net2002有帮助文件的。

不要说你用精简2003,那我收回这句话。
Montaque 2003-08-14
  • 打赏
  • 举报
回复

在 Windows 窗体上创建动态上下文菜单

创建新的 Windows 应用程序。有关详细信息,请参见创建 Windows 应用程序项目。
将 CheckBox 控件和 RadioButton 控件从“工具箱”拖到窗体上。
虽然任何两个(或更多个)控件都可以共享一个上下文菜单,但使具有类似命令的控件共享上下文菜单也是有好处的,因为这样可以减少必需动态显示及隐藏的量。

双击“工具箱”中的“ContextMenu”组件,将其添加到窗体中。它将成为共享的上下文菜单。
在“属性”窗口中,将 CheckBox 控件和 RadioButton 控件的 ContextMenu 属性设置为 ContextMenu1(在 Visual Basic 中)或 contextMenu1(在 Visual C# 或 Visual C++ 中)。
在“属性”窗口中,将 CheckBox 控件的 ThreeState 属性设置为 true。
注意 您还可以完全使用代码生成 ContextMenu 和 ThreeState 属性的菜单项和设置。有关详细信息,请参见向 Windows 窗体添加上下文菜单和设置控件、文档和窗体的属性。有关 ThreeState 属性的详细信息,请参见 Windows 窗体 CheckBox 控件介绍。
从设计器中双击 ContextMenu 组件,为该组件的 Popup 事件创建默认的处理程序。有关详细信息,请参见在 Windows 窗体设计器上创建事件处理程序。
在事件处理程序中插入执行以下任务的代码:
添加两个菜单项,一个表示控件的 Checked 状态,另一个表示 Unchecked 状态。
用 If 语句检验 CheckBox 控件是否为窗体上的 SourceControl。根据检验结果,动态地添加第三个菜单项,该菜单项表示控件的 Indeterminate 状态。
以下示例显示如何使用 Add 方法来设置菜单项的 Text 属性以及如何定义与该菜单项相关联的事件处理程序。有关其他具有不同签名的 Add 方法,请参见 Menu.MenuItemCollection.Add 方法。

' Visual Basic
Protected Sub ContextMenu1_Popup(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContextMenu1.Popup
' Clear the contents of the context menu.
ContextMenu1.MenuItems.Clear()
' Add a menu item for the Checked state.
ContextMenu1.MenuItems.Add("Checked", New System.EventHandler(AddressOf Me.Checked_OnClick))
' Add a menu item for the Unchecked state.
ContextMenu1.MenuItems.Add("Unchecked", New System.EventHandler(AddressOf Me.Unchecked_OnClick))
' Test which control it is.
' If it is the CheckBox, add a menu item for the Indeterminate state.
If ContextMenu1.SourceControl Is CheckBox1 Then
ContextMenu1.MenuItems.Add("Indeterminate", New System.EventHandler(AddressOf Me.Indeterminate_OnClick))
End If
End Sub

为 MenuItem1 创建一个事件处理程序。添加如下代码,检验窗体的 SourceControl 属性,然后根据检验结果设置 RadioButton 或 CheckBox 控件的 Checked 属性:
' Visual Basic
Protected Sub Checked_OnClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
If ContextMenu1.SourceControl Is RadioButton1 Then
RadioButton1.Checked = True
ElseIf ContextMenu1.SourceControl Is CheckBox1 Then
CheckBox1.Checked = True
End If
End Sub



注意 此示例使用 CheckState 属性在 Indeterminate_OnClick 事件处理程序中将 CheckBox 控件设置为 Indeterminate。
有关如何在 Visual Basic 中创建事件处理程序的详细信息,请参见在 Visual Basic 代码编辑器中创建事件处理程序。有关如何在 C# 中创建事件处理程序的详细信息,请参见在 Windows 窗体设计器上创建默认事件处理程序。有关如何在 C++ 中创建事件处理程序的详细信息,请参见 Visual C++ 中的事件处理。

为 MenuItem2 创建类似的事件处理程序。为该事件处理程序输入如下代码:
' Visual Basic
Protected Sub Unchecked_OnClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
If ContextMenu1.SourceControl Is RadioButton1 Then
RadioButton1.Checked = False
ElseIf ContextMenu1.SourceControl Is CheckBox1 Then
CheckBox1.Checked = False
End If
End Sub

为 MenuItem3 创建类似的事件处理程序。为该事件处理程序输入如下代码,确保将事件命名为 Indeterminate_OnClick:
' Visual Basic
Protected Sub Indeterminate_OnClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
If ContextMenu1.SourceControl Is CheckBox1 Then
CheckBox1.CheckState = System.Windows.Forms.CheckState.Indeterminate
End If
End Sub

Montaque 2003-08-14
  • 打赏
  • 举报
回复
呵呵,这个就是两个关键字Addhandles或者withevents的问题。

szch 2003-08-14
  • 打赏
  • 举报
回复
呵呵!楼上的描述的很清楚了,不需要在说了
citylamp 2003-08-14
  • 打赏
  • 举报
回复
下面是点击Form3上时动态加载新的Textbox对象,并给他增加extChanged属性。照葫芦画瓢,你可以用在你需要的地方。
Private Sub Form3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Click
Dim t As TextBox
m1Count += 1
t = New TextBox() ’动态生成的Textbox控件
t.Name = "TextBox" & m1Count.ToString
t.Location = New Drawing.Point(0, m1Count * 20)
t.Size = New Drawing.Size(100, 20)
t.Text = "TextBox Control"
Me.Controls.Add(t)
AddHandler t.TextChanged, AddressOf TheHandler '为新控件增加对象事件(内容改变时触发)
End Sub

Sub TheHandler()
....(处理语句)
End Sub

16,720

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧