-
VB 模拟鼠标单击事件
2009-11-15 21:58:56在Visual Basic重用API函数模拟鼠标单击事件 -
请教VB button的单击事件问题
2019-04-09 09:44:55我想请教一个关于VB程序按钮的单击事件问题,详细信息如下: 程序功能界面有一个"查询按钮",它可以通过查询条件从数据库找出一个结果集,并显示到窗口Grid界面. 当单击"查询按钮"时将结果集显示到Gride里面,如果... -
vb.net 中调用按钮单击事件
2011-06-24 08:51:001.Button1.PerformClick() 2.button1_click(sender,e) 3.button1_click(nothing,nothing) 4.button1_click(sender,nothing)1.Button1.PerformClick()
2.button1_click(sender,e)
3.button1_click(nothing,nothing)
4.button1_click(sender,nothing) -
VB.net MenuStrip控件通过数据库生成多级动态菜单并添加单击事件
2019-12-10 23:06:50VB.net MenuStrip控件通过数据库生成多级动态菜单并添加单击事件 个人小白,一个多月前想通过 MenuStrip控件调用数据库数据生成多级联动下拉菜单,结果网上的资料都只是部分代码可用。经过一个月的东拼西凑终于能...VB.net MenuStrip控件通过数据库生成多级动态菜单并添加单击事件
个人小白,一个多月前想通过 MenuStrip控件调用数据库数据生成多级联动下拉菜单,结果网上的资料都只是部分代码可用。经过一个月的东拼西凑终于能实现功能了。。。欢迎各位大神指正不足之处
思路很重要
MenuStrip控件制作多级联动下拉菜单需要分一级目录、二级目录。。。以二级目录为例。一级目录的一行值包括一组二级目录。也就是说每读取完一行一级目录,需要将相关联的二级目录全部提取出来。一级目录为大循环,二级目录为小循环。
数据库调用连接
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim G As String = Application.StartupPath & "\XXXX .xlsx" ’数据库路径+数据源,我用的Excel表格做的 Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + G + "';Extended Properties='Excel 12.0;HDR=Yes;IMEX=2;'") Dim cmd As OleDbCommand = New OleDbCommand cmd.CommandText = "Select First From [Sheet1$]" ReadData(conn, cmd) End Sub
数据调用至MenuStrip控件并注册单击事件
Private Sub ReadData(ByVal conn As OleDbConnection, ByVal cmd As OleDbCommand) cmd.Connection = conn conn.Open() Dim rdr As OleDbDataReader = cmd.ExecuteReader Dim One As New ToolStripMenuItem One.Name = "▼" One.Text = "▼" MenuStrip1.Items.Add(One) One.Visible = True Do While rdr.Read = True Dim First As New ToolStripMenuItem First.Name = Trim(rdr("First").ToString) If First.Name = "" Then Exit Do End If First.Text = Trim(rdr("First").ToString) One.DropDownItems.Add(First) One.DropDownItems.Add(First) Dim cmd2 As OleDbCommand = New OleDbCommand cmd2.Connection = conn cmd2.CommandText = "Select Second From [Sheet2$] where Transition='" + First.Text + "'" Dim rdr2 As OleDbDataReader = cmd2.ExecuteReader Do While rdr2.Read = True Dim Second As New ToolStripMenuItem Second.Name = Trim(rdr2("Second").ToString) If Second.Name = "" Then Exit Do End If Second.Text = Trim(rdr2("Second").ToString) First.DropDownItems.Add(Second) First.DropDownItems.Add(Second) AddHandler Second.Click, AddressOf Me.SecondClick ‘这个至关重要,注册单击事件,没这个只能看不能用 Loop Loop conn.Close() End Sub Private Sub SecondClick(sender As Object, e As EventArgs) ToolStripTextBox1.Text = sender.Name’单击时发生的事件 End Sub
不会添加附件凑合着看吧
一级目录
二级目录
-
vb和vb.net事件机制
2013-06-25 12:35:17学习java事件前,回顾了下vb6和vb.net的事件机制,总结在这里,供对比用。 事件是面对对象中对象间通信的方法。...用户单击按钮后,按钮(事件源)发出了单击事件,产生了自己被单击的消息给窗体,窗体(事学习java事件前,回顾了下vb6和vb.net的事件机制,总结在这里,供对比用。
事件是面对对象中对象间通信的方法。事件发生者(又叫事件源)发生一个事件时,通过发送一条消息,给事件接受者(事件处理者),事件接受者可以做出响应的处理。比如在某登录界面中,单击一个按钮,系统会验证用户的用户名和密码是否正确。用户单击按钮后,按钮(事件源)发出了单击事件,产生了自己被单击的消息给窗体,窗体(事件接受者)在自身代码窗口中进行响应的处理。
我们分别看下在vb和vb.net中是怎么实现事件机制的。
在vb6中,使用Event关键字定义事件,raiseEvent发出事件消息,在接受者的类中使用WithEvent表明自己是某个类的事件的接受者,我们看这样两段代码:
首先建立一个窗体,是一个登录窗体,输入用户名和密码后,点击登陆按钮可以登陆,代码(vb6)如下,使用了WithEvent来接收验证类(verifyClass)的消息:
接下来添加一个类模块,是登陆窗体中用到的验证类(verifyClass)的代码,里面定义(Event)了并引发(raiseEvent)了事件:Option Explicit '本句代码表明该窗体能接受验证类的事件消息 Private WithEvents vfClass As VerifyClass Private Sub cmdLogin_Click() '定义用户名和密码 Dim userName As String Dim password As String '定义返回结果 Dim Result As Boolean Set vfClass = New VerifyClass userName = txtUserName.Text password = txtPassword.Text '将用户名和密码传到验证类进行验证 Result = vfClass.Verify(userName, password) End Sub Private Sub Form_Load() End Sub '引发验证失败事件后,在此处可以进行相应处理 Private Sub vfClass_loginFail(ByVal userName As String) MsgBox (userName + "登录失败") End Sub '验证成功事件 Private Sub vfClass_LoginSuccess(ByVal userName As String) MsgBox (userName + "登录成功") End Sub
Option Explicit '定义验证成功和失败的事件 Public Event LoginSuccess(ByVal userName As String) Public Event loginFail(ByVal userName As String) '验证方法:对用户名和密码进行验证 Public Function Verify(ByVal userName As String, ByVal password As String) As Boolean Dim blnResult As Boolean If userName = "123" And password = "123" Then '如果正确,发出登陆成功的消息 RaiseEvent LoginSuccess(userName) blnResult = True Else '错误则发出登陆失败的消息 RaiseEvent loginFail(userName) blnResult = False End If Verify = blnResult End Function
在vb.net中事件的实现机制同vb基本相同,并且有了优化,通过Handles关键字,使事件实现的机制更灵活,handles可以使多个事件到同一个事件处理程序:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click, Button3.Click System.Windows.Forms.MessageBox.Show("我被触发了") End Sub
也可以通过AddHandler动态的绑定事件处理程序,即可以根据当时的条件选择将要绑定的事件处理程序,看下面这个例子。
首先定义一个person类,有走路这个事件,在走路方法中触发走路事件
Public Class Person Public Event walked(ByVal Distance As Integer) Public Sub walk(ByVal Distance As Integer) RaiseEvent walked(Distance) End Sub End Class
接下来新建一个窗体类,窗体上有一个文本框和一个按钮,代码如下
Public Class Form1 '本句代码表明该窗体能接受验证类的事件消息 Public WithEvents objPerson As Person Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click objPerson = New Person() '满足条件下才执行绑定操作 If (TextBox1.Text = "1") Then '满足条件,执行动态绑定,将事件绑定到某方法,该方法转变成事件处理程序 AddHandler objPerson.walked, AddressOf Person_walk objPerson.walk(50) Else System.Windows.Forms.MessageBox.Show("您输入的文本不是1") End If End Sub '触发的事件将绑定到本事件处理程序 Public Sub Person_walk(ByVal Distance As Integer) System.Windows.Forms.MessageBox.Show("a person walked" + Distance.ToString() + " kilometer!") End Sub End Class
这就是vb和vb.net的事件处理机制,等学了java事件机制后将进行对比。
-
VB.net 动态添加菜单响应单击事件
2007-06-13 23:10:00以前 VB 6.0 我要调一堆 API 感觉好过瘾 呵呵 现在找不到这种感觉了 哈!记得vb 6 的 时候生气用Win32写了个Clock 掉了上百个 API 连VB 6 的窗体都没用, 那个叫过瘾 一切都在控制中的感觉真好。看来我还是适合用 ...以前 VB 6.0 我要调一堆 API 感觉好过瘾 呵呵 现在找不到这种感觉了 哈!记得vb 6 的 时候生气用Win32写了个Clock 掉了上百个 API 连VB 6 的窗体都没用, 那个叫过瘾 一切都在控制中的感觉真好。看来我还是适合用 MASM Win32 的。哈哈 废话 到此结束。动态添加菜单在 .net 中很容易的。
首先建立一个XML 文件用来存储 菜单信息 (本例使用 DataHelper.xml)
<?xml version="1.0" encoding="utf-8" ?>
<DataHelper>
<Menu>
<IsSeparator>0</IsSeparator>
<IsTopMenu>0</IsTopMenu>
<TopMenuItemIndex>2</TopMenuItemIndex>
<SubMenuItemIndex></SubMenuItemIndex>
<MenuID>1</MenuID>
<ParentID>0</ParentID>
<Text>基本数据库(&B)...</Text>
<Image></Image>
<ToolTipText></ToolTipText>
<Visible>True</Visible>
<Name>DataConvert</Name>
<ShortcutKeys></ShortcutKeys>
</Menu>
<Menu>
<IsSeparator>1</IsSeparator>
<IsTopMenu>0</IsTopMenu>
<TopMenuItemIndex>2</TopMenuItemIndex>
<SubMenuItemIndex></SubMenuItemIndex>
<MenuID>2</MenuID>
<ParentID>0</ParentID>
</Menu><Menu>
<IsSeparator>0</IsSeparator>
<IsTopMenu>0</IsTopMenu>
<TopMenuItemIndex>2</TopMenuItemIndex>
<SubMenuItemIndex></SubMenuItemIndex>
<MenuID>2</MenuID>
<ParentID>0</ParentID>
<Text>计生系统(&J)...</Text>
<Image></Image>
<ToolTipText></ToolTipText>
<Visible></Visible>
<Name>DataConvert</Name>
<ShortcutKeys>131140</ShortcutKeys>
</Menu><Menu>
<IsSeparator>1</IsSeparator>
<IsTopMenu>0</IsTopMenu>
<TopMenuItemIndex>2</TopMenuItemIndex>
<SubMenuItemIndex></SubMenuItemIndex>
<MenuID>2</MenuID>
<ParentID>0</ParentID>
</Menu><Menu>
<IsSeparator>0</IsSeparator>
<IsTopMenu>0</IsTopMenu>
<TopMenuItemIndex>2</TopMenuItemIndex>
<SubMenuItemIndex></SubMenuItemIndex>
<MenuID>3</MenuID>
<ParentID>0</ParentID>
<Text>党员系统(&D)...</Text>
<Image></Image>
<ToolTipText></ToolTipText>
<Visible></Visible>
<Name>DataConvert</Name>
<ShortcutKeys></ShortcutKeys>
</Menu><Menu>
<IsSeparator>1</IsSeparator>
<IsTopMenu>0</IsTopMenu>
<TopMenuItemIndex>2</TopMenuItemIndex>
<SubMenuItemIndex></SubMenuItemIndex>
<MenuID>2</MenuID>
<ParentID>0</ParentID>
</Menu><Menu>
<IsSeparator>0</IsSeparator>
<IsTopMenu>0</IsTopMenu>
<TopMenuItemIndex>2</TopMenuItemIndex>
<SubMenuItemIndex></SubMenuItemIndex>
<MenuID>4</MenuID>
<ParentID>0</ParentID>
<Text>民政系统(&M)...</Text>
<Image></Image>
<ToolTipText></ToolTipText>
<Visible></Visible>
<Name>DataConvert</Name>
<ShortcutKeys></ShortcutKeys>
</Menu>
</DataHelper>好了第一步开始,读取XML文件 我们使用 DataSet 来干这活,不过我是在 DataHerlper.Common 工程来干这事的。哇 分层阿!
这个是个结构 我用的 看取那个TableImports System.Drawing
Imports System.Windows.Forms
Namespace DataHelper.Common
Public Enum DataHelperConfigTableName
DropDownMenu = 0
Plugins = 1
End Enum
End Namespace
Imports System.Data
Imports DataHelper.Common.Caching
Imports System.Windows.Forms
Namespace DataHelper.Common
Public Class SharedClass
Public Shared Function GetDataHelperConfig(Optional ByVal TableName As DataHelperConfigTableName = DataHelperConfigTableName.DropDownMenu) As DataTable
Dim strDataHelperConfigFile As String
Dim ds As New DataSet
Dim dt As New DataTable
strDataHelperConfigFile = Application.StartupPath & "ConfigDataHelper.xml" 'Application.StartupPath
ds = DataCache.GetCache("DataHelperConfig")
If ds Is Nothing Then
Dim xmlReader As XmlTextReader = New XmlTextReader(strDataHelperConfigFile)
ds = New DataSet
ds.ReadXml(xmlReader)
dt = ds.Tables(TableName)
DataCache.Insert("DataHelperConfig", ds, DataCache.CreateFileCacheDependency(strDataHelperConfigFile))
Else
dt = ds.Tables(TableName)
End If
Return dt
End Function
End Class
End Namespace
我们得到菜单信息了接下来就要动态添加菜单了 这又是一个工程(DataHelper.UserInterface) 分层吗
'**********************************************************************************************************
' Programmer By Shadow (QQ:33512603)
' User Interface MainMenu Class
' The MainMenu class create menu for localappliction
' Corpright(C) 2006 Jiang Jian
'**********************************************************************************************************
' 程序设计:江建
'**********************************************************************************************************
Imports System.IO
Imports System.Windows.Forms
Imports DataHelper.Common
Imports DataHelper.PluginsInterface
Namespace DataHelper.UserInterface
Public Class MainMenu
Private MenuClick As New MainMenuClick
Public Methods
Private Methods
End Class
End Namespace
'**********************************************************************************************************
' Programmer By Shadow (QQ:33512603)
' User Interface MainMenuClick Class
' The MainMenuClick class response menu click event
' Corpright(C) 2006 Jiang Jian
'**********************************************************************************************************
' 程序设计:江建
'**********************************************************************************************************
Imports System.Diagnostics
Imports System.Windows.Forms
Namespace DataHelper.UserInterface
Public Class MainMenuClick
Private Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer
Private Declare Function SetWindowPos Lib "user32" (ByRef hwnd As Integer, ByRef hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer,
ByVal cy As Integer, ByVal wFlags As Integer) As Integer
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private DataConvert As New Process
Public Methods
Overrides Methods
End Class
End Namespace
最后是测试 哈哈 终于完了 在你的主窗体下 加入一个 MenuScript 控件 名称为 MainMenu 这次测试未添加 顶级菜单 如果要添加顶级菜单 请修改XML文件 IsTopMenu 为1
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim test As New MainMenu
test.CreateMenu(Me.MainMenu)
End Sub
-
vb.net 单击添加事件打开window自带软件
2012-03-30 09:51:01vb.net 当光标在文本框中,可以动弹出Windows系统自带的虚拟键盘,怎么实现(请加好解释备注,方便看的懂,谢谢) -
vb+webbrowser 改变标签的属性_VB鼠标事件详解
2020-12-11 11:20:07其用户交互中最为重要的方式是鼠标,此前我们介绍过鼠标的单击事件。那么本节课程我们一起来详细的学习鼠标的各种事件。鼠标常用事件包括:Click、DblClick、MouseMove、MouseDown、MouseUp。01—鼠标事件的含义鼠标... -
[VB.NET]单击按钮右键事件
2008-12-28 15:36:00单击按钮右键事件1.是哪个呢? 2.怎么知道点的是左键还是右键呢?__________________________________________________________________________Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As ... -
VB窗体事件简介
2012-02-27 16:16:321. Load(装载)事件 2. Unload(卸载)事件 3. Activate(活动)、Deactivate(非活动)事件 4. Paint(绘画)事件 ...5. Click(单击)事件 6. Dbclick(双击)事件 7. KeyPress(按键)事件 -
VB鼠标事件详解-《来抓我》游戏
2021-01-29 19:40:58其用户交互中最为重要的方式是鼠标,此前我们介绍过鼠标的单击事件。那么本节课程我们一起来详细的学习鼠标的各种事件。 鼠标常用事件包括: Click、DblClick、MouseMove、MouseDown、MouseUp。 01 — 鼠标事件的... -
VB事件大全
2014-10-29 21:53:02Change 事件示例 本例在 TextBox 控件中显示水平滚动条的 Value 属性的数值。要尝试这个例子,需创建一个带有 TextBox 控件及 HScrollBar 控件的窗体,然后将码粘贴到一个带有水平滚动条 (HScrollBar 控件) 和 ... -
vb msgbox给按钮caption_MyVBA加载宏——添加自定义菜单02——给按钮添加单击事件...
2020-12-10 20:26:59在2003版本之前的Excel里使用过VBA的话,应该接触过在Excel里添加自定义菜单,使用方法和前面说的在VBE里添加菜单是类似...Application.VBE.Events.CommandBarEvents(btn)End Sub 运行后再点击按钮,能够响应单击事件。 -
VB对象的事件和方法
2020-09-15 12:44:45例如,用户点击一次按钮,就会触发一次该按钮的单击事件,即Command1_Click事件。 一个事件,就好比一个动作,用户单击按钮是一个事件,双击按钮也是一个事件,按下一个键盘的按键是一个事件,关闭某个窗口也是一个... -
vb winfrom中动态添加控件的单击事件,指向另外一个有参数的方法,急!在线等!
2016-07-19 11:58:24我现在有几个动态添加的button控件,我想将这些控件的单击事件指向另外一个我自己写的方法,并且需要传参数进去,请问我怎么将这个单击事件指向我写的这个方法呢?急用,在线等!求大神指教! -
方法作用于对象失败vb_VB对象的事件和方法
2021-01-17 22:34:36对象的事件:事件是指对象对于外部动作的响应,当对象发生了某个事件,就会执行相应的代码,这段...例如,用户点击一次按钮,就会触发一次该按钮的单击事件,即Command1_Click事件。一个事件,就好比一个动作,用户... -
VB模拟鼠标左键单击和移动.rar
2019-07-10 12:09:28VB模拟鼠标左键单击和移动,单击按钮后,鼠标会移动到正中间,产生向上或向下滚动鼠标滚轮事件,如果鼠标在其他应用程序窗口之上,获取鼠标下窗口中的鼠标句柄,并且代码中有一个键盘函数很实用哦。 -
TreeView1鼠标点击节点触发的单击事件
2017-03-15 14:39:22说实话,刚刚从Delphi改成VB.net,delphi...查了很多资料,竟然查不到TreeView1节点的应用,全是什么增加、遍历什么的,自己测试了很久,其实应该是TreeView1_NodeMouseClick事件才是node中正确的鼠标点击事件。 vb .ne -
VB自动生成控件并实现单击
2008-05-07 11:58:32本程序是用VB写的一个自动生成控件并能补捉到其单击事件的一个程序。 -
VB.NET学习笔记:事件处理及自定义事件
2019-01-03 15:14:18编程必然要知道事件,比如单击按钮事件,然后编写当事件发生时的处理代码,VB.NET是怎样进行事件处理的呢?可否自定义事件呢?因扩展控件,使其列头增加全选全不选复选框并具备分页功能需要用到自定义事件,详见博文... -
技术盘点之VB6事件机制
2006-02-22 13:48:00第一种场景:主表单调出客户列表表单选择一个客户 流程:用户单击主表单相应控件调出客户列表表单,选择一个客户,被选中的客户数据返回给主表单。代码解释:a. 主表单mainform声明一个私有的客户列表表单... -
visual basic:通过单击事件动态添加的文本框如何引用其中输入的内容进行运算?
2019-01-18 12:34:41添加文本框: ``` Private Sub plus_Click() Dim qianglei, zuofa, zuofa_s, cailiao, ...我想通过这个单击事件添加几个文本框和一个按钮,然后单击按钮后选取其中文本框的内容进行运算并输出结果。 求指教 -
vb Form的基本事件
2018-06-30 11:19:10Private Sub Form_Activate() 当此窗体变为活动窗口时...单击时触发 End Sub Private Sub Form_DblClick() 双击时触发 End Sub Private Sub Form_Deactivate() 当此窗体不再是活动窗口时触发 End Sub Private Sub For -
Vb.net中暴露用户控件中子控件事件的实现(VB2005)
2009-01-08 10:31:00在vb.net中编写的用户控件中,有时需要把用户控件内子控件的某个事件暴露给用户使用,使用户能够自已定义子控件的事件... Public Event myClick As System.EventHandler 鼠标单击事件 写它的一个保护方法 Protected -
VB模拟一次鼠标事件
2007-07-28 08:51:00使用API函数mouse_event可以模拟一次鼠标事件,比如左键单击、双击和右键单击等。这个实例利用此函数产生了十分有趣的效果,无论鼠标处于屏幕的任何位置,每隔一秒程序会使鼠标在那个位置单击或双击一次,这会给我们... -
vb中mshflexgrid每格宽度_VB中MSHFLEXGRID常用的属性,方法事件
2021-01-17 12:52:211) MSHFLEXGRID的重要属性.MSHFLEXGRID...下面列出常用的属性,方法事件及其简要说明.以便查阅.属性 类型 说明AllowBigSelector Boolean 返回/设置一个值,定义当在行或列的头部单击时,是否该行或列将整个被选中Allow... -
VB6.0 IDE添加鼠标滑轮事件
2011-11-02 14:14:25下载包含加载项 DLL 和用于创建外接程序 DLL 的代码的 VB6 鼠标 Wheel.exe 文件。 下载 VB6 鼠标 Wheel.exe 文件。以下文件是可从 Microsoft 下载...有关如何下载 Microsoft 的支持文件的详细信息单击下面的文章编号 -
vb.net中datagridview的鼠标事件_selenium自动化测试中的鼠标事件
2020-12-13 17:41:41selenium给我们提供了一个类来处理这类事件——ActionChains。ActionChains可以对需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等进行操作。使用鼠标事件之前需要要导入ActionChains类,...