精华内容
下载资源
问答
  • 在声明公共变量的位置加上这句就可以了Dim WithEvents NewButton As Button form_load中添加 NewButton = New Button NewButton.Text = "close" Me.Controls.Add(NewButton) 调用事件: Private Sub NewButto...

    在声明公共变量的位置加上这句就可以了 Dim WithEvents NewButton As Button

    form_load中添加  

     NewButton = New Button
            NewButton.Text = "close"
            Me.Controls.Add(NewButton)

     

    调用事件:

       Private Sub NewButton_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewButton.Click

            MsgBox("not click me!")

        End Sub

    转载于:https://www.cnblogs.com/zuiyeqingfeng/p/3770563.html

    展开全文
  • VB窗体动态创建控件及控件事件

    千次阅读 2019-07-01 07:48:44
    VB窗体动态创建较少,今天,试着弄一个,专为解答之。 首先创建一个空白窗体,调整大小,修改名称,双击窗体进入代码编辑界面: Public Class VB解答专用窗体 Dim 数据列表 As DataGridView Dim 输入框 As ...

    VB窗体动态创建较少,今天,试着弄一个,专为解答之用。

    首先创建一个空白窗体,调整大小,修改名称,双击窗体进入代码编辑界面:

    Public Class VB解答专用窗体
        Dim 数据列表 As DataGridView
        Dim 输入框 As TextBox
        Private Sub VB解答专用窗体_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            数据列表 = New DataGridView
            数据列表.Parent = Me
            数据列表.Columns.Add("序列", "序列")
            数据列表.Columns.Add("内容", "内容")
            '数据列表.Rows.Add(5)
            AddHandler 数据列表.RowStateChanged, AddressOf 数据列表行状态更改
            输入框 = New TextBox
            输入框.Parent = Me
            AddHandler 输入框.TextChanged, AddressOf 输入框输入更改
            数据列表.Location = New Point(输入框.Width + 5, 2)
            AddHandler 数据列表.CellDoubleClick, AddressOf 单元格双击发生
        End Sub
        Private Sub 数据列表行状态更改(sender As Object, e As DataGridViewRowStateChangedEventArgs)
            数据列表.Rows(e.Row.Index).Cells(0).Value = e.Row.Index
            e.Row.HeaderCell.Value = String.Format("{0}", e.Row.Index + 1)
        End Sub
    
        Private Sub 输入框输入更改(sender As Object, e As EventArgs)
            数据列表.Rows.Add(Integer.Parse(输入框.Text))
        End Sub
    
        Private Sub 单元格双击发生(sender As Object, e As DataGridViewCellEventArgs)
            数据列表.Rows.Insert(e.RowIndex, 1)
        End Sub
    
    End Class
    

     

     

    接着创建一个控件,并在窗体加载事件中对控件进行一些设置和添加一个事件:

    从上图看到有波浪线,鼠标移动到波浪线处,在弹出的纠正错误框中选择生成方法存根:

    删除自动生成事件中的Throw New NotImplementedException代码,写自己要处理的代码,这里以论坛提问为例,鼠标点击自动填充序号:

    添加事件处理代码:

    运行程序:

    再次创建一个文本框控件,如上所述,同时简单设置2个控件的位置:

    再次运行程序,在文本框中输入数字2,看运行效果图:

    可以看到创建了2行,同时自动添加序列各行的序值。https://bbs.csdn.net/topics/392550942

     

     

     

     

     

     

     

     

     

     

    展开全文
  • VB程序中,如果你如下语句动态创建一个Combo控件 Dim WithEvents cmbDropList As ComboBox ... Set cmbDropList = Controls.Add("VB.ComboBox", "cmbDropList") 后,Combo控件的Style值是1 (VbComboDropDown ...

    在VB程序中,如果你用如下语句动态创建一个Combo控件
      Dim WithEvents cmbDropList As ComboBox

      ...
      Set cmbDropList = Controls.Add("VB.ComboBox", "cmbDropList")

      后,Combo控件的Style值是1 (VbComboDropDown 下拉式组合框,包括一个下拉式列表和一个文本框。可以从列表选择或在文本框中输入
    ),若想把Style的值更改2 (VbComboDrop-DownList 2 下拉式列表。这种样式仅允许从下拉式列表中选择 )

      通过语句Combo1.Style=2是不行的,因为Style是只读属性。为了突破这个限制,我动用的Spy++这个武器,对两种不同Style值的combo控件进行侦察,发现了两处不同

      1、combo控件的style的值为1-VbComboDropDown时,combo控件窗口的Styles=&H54010242,而combo控件的style的值为2-VbComboDrop-DownList时,combo控件窗口的Styles=&H54010243

      2、combo控件的style的值为1-VbComboDropDown时,combo控件里有一个Edit文本框窗口,而combo控件的style的值为2-VbComboDrop-DownList时,则没有Edit文本框窗口

      我首先试着用API函数改变combo控件窗口的Styles值,
      Call SetWindowLong(Combo1.hwnd,
    GWL_STYLE,&H54010243)
      看Combo控件有没有什么改变,结果大失所望,

      我再次试着用API函数杀死Combo控件里的那个Edit窗口,耶~~~,成功了
      下面是我的实现代码:
      Private
    Const GWL_STYLE = (-16)
      Private Const GW_CHILD = 5
      Private Declare
    Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

      Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long
      Private Declare
    Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long,
    ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
      Private Declare
    Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As
    Long
      Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As
    Long) As Long
      Private Declare Function CreateWindowEx Lib "user32" Alias
    "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal
    lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long,
    ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal
    hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
      Const
    SW_HIDE = 0
      Const SW_SHOW = 5
      Dim WithEvents cmbDropList As ComboBox

      Private Sub cmbDropList_Click()
      MsgBox cmbDropList.Text
      End
    Sub
      Private Sub Command1_Click()
      Dim ChildHwnd As Long
      Set
    cmbDropList = Controls.Add("VB.ComboBox", "cmbDropList")

      cmbDropList.Visible = True
      cmbDropList.AddItem "One"

      cmbDropList.AddItem "Two"
      ChildHwnd = GetWindow(cmbDropList.hwnd,
    GW_CHILD) '取edit句柄
      Call DestroyWindow(ChildHwnd) 'Kill edit窗口

      '改变cmbDropList的Style,这一语句可有可无~~~~,
      Call
    SetWindowLong(cmbDropList.hwnd, GWL_STYLE, GetWindowLong(cmbDropList.hwnd,
    GWL_STYLE) + 1)
      End Sub

    转载于:https://www.cnblogs.com/Spacecup/p/3564845.html

    展开全文
  • 即使对TCP/IP不太熟悉的用户,使用该控件也可以在十几分钟内创建一个简单的客户机/服务器程序。下面我们对Winsock控件的事件、方法、属性按其在程序中出现的顺序分别作详细的介绍,以便更好地理解程序源代码。 下面...

    Winsock控件建立在TCP、UDP协议的基础上,完成与远程计算机的通信。即使对TCP/IP不太熟悉的用户,使用该控件也可以在十几分钟内创建一个简单的客户机/服务器程序。下面我们对Winsock控件的事件、方法、属性按其在程序中出现的顺序分别作详细的介绍,以便更好地理解程序源代码。

    下面是Winsock控件的相关属性,方法和事件。(略去一些暂用不到的)

    *属性
    -------------------------------------------------------------------------
    LocalHostName | 本地机器名
    LocalIP | 本地机器IP地址
    LocalPort | 本地机器通信程序的端口(0<端口<65536)
    RemoteHost | 远程机器名
    RemotePort | 远程机器的通信程序端口
    state | 连接的当前状态(文后有详细说明)
    Protocal | 使用TCP或UDP协议(这里我们选‘0-sckTCPProtocal’)
    --------------------------------------------------------------------------
    *方法
    --------------------------------------------------------------------------
    Listen
    Listen方法用于服务器程序,等待客户访问。
    格式:Winsock对象.listen
    Connect
    Connect方法用于向远程主机发出连接请求
    格式:Winsock对象.connect [远程主机IP,远程端口]
    Accept
    Accept方法用于接受一个连接请求
    格式:Winsock对象.accept Request ID
    Senddata
    此方法用于发送数据
    格式:Winsock对象.senddata 数据
    Getdata
    用来取得接收到的数据
    格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]]
    Close
    关闭当前连接
    格式:Winsock对象.close
    *事件
    ----------------------------------------------------------------------------
    Close | 远程机器关闭连接时触发
    Connect | 连接建立好,可以进行通信时触发(客户端)
    ConnectRequest | 有请求连接到达时产生(服务器端)
    DataArrival | 有数据到达时触发
    Error | 发生错误时发生
    SendProgress | 数据传送进度
    -----------------------------------------------------------------------------

      服务器程序的实现过程是:
      (1)服务器程序必须设置好LocalPort属性,作为侦听端口,该值为一个整数(只要是一个其它TCP/IP应用程序没有使用过的值即可)。
      (2)使用Listen方法进入侦听状态,等待客户机程序的连接请求。
      (3)客户机程序发出连接请求,使服务器程序产生ConnectionRequest事件,该事件得到一个参数requestID。
      (4)服务器程序用Accept方法接受客户机程序的requestID请求。这样,服务器程序就可以用SendData方法发送数据了。Accept方法必须用上一步得到的requestID作为其参数。
      (5)当服务器程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。
      (6)如果接受到Close事件,则用Close方法关闭TCP/IP连接。
      客户机程序的实现过程是:
      (1) 客户程序设置Remotehost属性,以便指定运行服务器程序的主机 名,该字符串可在“控制面板|网络|标识|计算机名”中查到。
      (2) 设置RemotePort属性,以便指定服务器程序的侦听端口。
      (3)使用Connect方法,向服务器提出连接请求。
      (4)服务器接受客户机程序的请求,客户机程序产生Connect事件,就可以用SendData方法发送数据了。
      (5)当客户机程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。
      (6)如果接受到Close事件,则用Close方法关闭连接。
      Winsock控件还有两个重要的属性,即Protocol和State。Protocol设定使用的协议是TCP还是UDP:取值sckTCPProtocol表示TCP, 取值sckUDPProtocol则表示UDP。因为Winsock控件的缺省设置是sckTCPProtocol,所以程序中并没有使用Protocol属性。State属性反映的是当前TCP/IP的连接状态,取值如表1所示。
      表1 Winsock控件的State属性及其描述

    常数
    描述
    SckClosed
    0
    缺省值,关闭
    SckOpen
    1
    打开
    SckListening
    2
    侦听
    SckConnectionPending
    3
    连接挂起
    SckResolvingHost
    4
    识别主机
    SckHostResolved
    5
    已识别主机
    SckConnecting
    6
    正在连接
    SckConnected
    7
    已连接
    SckClosing
    8
    同级人员正在关闭连接
    SckError
    9
    错误
      先在一台计算机上运行服务器程序,此时窗口上只有一个“退出”按钮。 再在另一台计算机上运行客户机程序,在“连接”按钮右边的文本框中输入服务器的主机名后单击“连接”按钮。如果连接成功,则服务器和客户机程序窗口都会出现两个文本框。这时,两端都可以在上面的文本框中输入文字,这些文字会立即在下面的文本框中出现。
      服务器程序使用的控件如下:
      (1)Command1:退出按钮;
      (2)textsend:发送数据文本框;
      (3)Winsockserver: 服务器Winsock;
      (4)textget :接收数据文本框。
      服务器程序的界面如图所示。
      服务器程序的源代码如下:
      Private Sub Command1_Click()
      End
      End Sub
      Private Sub Form_Load()
       textsend.Visible = False
       textget.Visible = False
       Winsockserver.LocalPort = 1001
       Winsockserver.Listen
      End Sub

      Private Sub textsend_Change()
      Winsockserver.SendData textsend.Text
      End Sub
      Private Sub Winsockserver_Close()
      Winsockserver.Close
      End
      End Sub
      
      Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
      textsend.Visible = True
      textget.Visible = True
      If Winsockserver.State <> sckClosed Then Winsockserver.Close
      Winsockserver.Accept requestID
      End Sub
      
      Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
      Dim tmpstr As String

      Winsockserver.GetData tmpstr
      textget.Text = tmpstr
      End Sub

      客户机程序使用的控件如下:
      (1)Command1:退出按钮;
      (2)Command2:连接按钮;
      (3)Winsockclient:客户Winsock;
      (4)Text1:主机名文本框;
      (5)Textsend:发送数据文本框;
      (6)Textget:接收数据文本框;   
      客户机程序的源代码如下:
      Private Sub Command1_Click()
      End
      End Sub
      Private Sub Command2_Click()
      Winsockclient.Connect
      End Sub
      Private Sub Form_Load()
      textsend.Visible = False
      textget.Visible = False
       Winsockclient.RemotePort = 1001
      Winsockclient.RemoteHost = "sccdsz"
      End Sub
      Private Sub Text1_Change()
      Winsockclient.RemoteHost = Text1.Text
      End Sub
      Private Sub textsend_Change()
      Winsockclient.SendData textsend.Text
      End Sub
      Private Sub Winsockclient_Close()
       Winsockclient.Close
       End
      End Sub
      Private Sub winsockclient_Connect()
       textsend.Visible = True
       textget.Visible = True
       Command2.Visible = False
      End Sub
      Private Sub winsockclient_DataArrival(ByVal bytesTotal As Long)
      Dim tmpstr As String
      Winsockclient.GetData tmpstr
      textget.Text = tmpstr
      End Sub
     
    展开全文
  • .net开发一个dll,传入vb.net代码或者c#源码就可以自动运行,创建窗口或者直接返回计算结果。 把这个dll给易语言vc6,vb6,freebasic,delphi等语言调用。让一切编程语言都支持.net 简单说,熟悉一种开发语言,但有时...
  • 大家都知道VBNET取消了控件数组 在VB。NET里也可以动态创建控件数组 但是创立的控件数组,比如创建一组按钮,但当按钮被点击后 如何能够实现不同按钮点击,只响应相同一事件代码,只是按钮编号不同
  • VB程序中,通过代码改变Combo控件只读属性Style值 (转)[@more@] 在VB程序中,如果你如下语句动态创建一个Combo控件 Dim WithEvents cmbDropList As ComboBox....
  • 最近也是在项目中遇到了webbrowser控件中想关闭JS脚本错误窗口的问题,所以经过多次测试,终于一段高效实用的代码完美解决webbrowser控件中JS脚本错误窗口关闭的问题。 通过创建一个子线程,然后在子线程中...
  • vb DataGrid 控件的使用

    2008-10-05 13:51:36
    当在设计时设置了DataGrid 控件的 DataSource 属性后,就会数据源的记录集来自动填充该控件,以及自动设置该控件的列标头。然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。
  • <!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"
  • 用VB.NET打造个性化ListBox控件

    千次阅读 2004-10-19 09:23:00
    ListBox(列表框)也是日常经常使用和遇到的组件,在Visual Basic....Net FrameWork SDK中的ListBox类所创建的ListBox是最典型的,要想使自己的ListBox与众不同就必须编写相应的代码,好在.Net FrameWork SDK中的ListBo
  • ListBox(列表框)也是日常经常使用和遇到的组件,在Visual ....Net FrameWork SDK中的ListBox类所创建的ListBox是最典型的,要想使自己的ListBox与众不同就必须编写相应的代码,好在.Net FrameWork SDK中的ListBox类
  • 下面是利用SQL语句创建数据库、表、存储过程、视图、索引、规则、修改表、查看数据等的方法。所要增加的控件如下: Imports System.Data Imports System.Data.SqlClient Public Class Form1  ...
  • 下面是利用SQL语句创建数据库、表、存储过程、视图、索引、规则、修改表、查看数据等的方法。所要增加的控件如下: Imports System.Data Imports System.Data.SqlClient Public Class Form1 Inherits System....
  • VB.NET通讯录源代码

    2014-10-21 16:57:19
    二、创建数据库1、创建ACCESS数据库TXL,在数据库中创建表txl,结构如下将表保存到应用程序TXL所在的文件夹下2、可以在数据库中输入测试的数据三、创建应用程序界面1、创建应用程序界面如下图所示2、各控件的命名...
  • DataGrid 控件VB的详细使用

    万次阅读 2006-12-21 11:57:00
    使用 DataGrid 控件 DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一...DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid 控件的 DataSource 属性后,就会
  • VB程序中,如果你如下语句动态创建一个Combo控件Dim WithEvents cmbDropList As ComboBox...Set cmbDropList = Controls.Add("VB.ComboBox", "cmbDropList")后,Combo控件的Style值是1 (VbComboDropDown 下拉...
  • ★新朋友点跟我学VB关注本微信平台一个VB程序也称为一个工程,由窗体、标准模块、自定义控件及应用所需的环境组成。开发步骤一般如下:建立步骤如下:1.创建程序的用户界面 2.设置界面上各个对象的属性值 3.编写...
  • ★新朋友点上方跟我学VB关注本微信平台好消息!...首先我们需要用VB新建一个工程,然后在窗体上依次添加下面的控件,如下图1。图1接着我们数据库软件Access来创建一个数据库文件。在打开的Access...
  • VC6下创建一个简单的ActiveX控件

    千次阅读 2006-04-21 15:14:00
    COM,DLL或者直接代码类来提供。还有一种非常方便的方法就是通过ActiveX控件来提供。它也是语言无关,可以在Delphi、VB、VC下使用。本文就来讲述如何利用VC6.0来创建一个ActiveX组件,这其中主要实现了如下的...
  • 已经尝试解决闪烁的问题,不过没有什么,不管是SetStyle还是CreateParams都没有,多半怀疑是动态创建导致的,因为TabControl和MenuItem还有ToolBox都重写了,就这个DesignSurface不会重写。求解决办法,目前没...
  • 我们做的时候只是复制一些代码,不知道含义,复制的时候经常出现问题,最大问题是控件名字的问题。请求高手指点一下,什么语句来创建连接和断开连接。 转载于:https://blog.51cto.com/1722083/340556...
  • VB常量与变量的命名规则与使用注意●VB知识总结之简单控件使用●在VB创建树形目录结构图●跟我学VB订单自动生成计算系统用VB统计字母程序实现代码Private Sub Command1_Click()Dim a(1 To 26) As Integer, c As ...
  • VB常量与变量的命名规则与使用注意●VB知识总结之简单控件使用●在VB创建树形目录结构图●跟我学VB订单自动生成计算系统用VB统计字母程序实现代码Private Sub Command1_Click()Dim a(1 To 26) As Integer, c As ...
  • VB网络编程实例

    千次下载 热门讨论 2007-05-29 15:46:04
    ◆ 88.htm 用VB创建自己的通信程序 ◆ 89.htm 用VB构建Internet的应用[微软提供] ◆ 90.htm 用VB开发标准CGI程序 ◆ 91.htm 用VB实现客户——服务器(TCP IP)编程实例 ◆ 92.htm 用VB实现...
  • 例如,你所创建的ActiveX控件可以用于HTML页面;你开发的ActiveX文档可以在Internet浏览器中使用并于其他的组件一起和HTML页面集成起来;另外ActiveX代码组件(以前被称为OLE服务器), 可以被部署在客户端或服务器端的...

空空如也

空空如也

1 2 3 4 5 6
收藏数 120
精华内容 48
关键字:

vb用代码创建控件