vb中如何动态添加删除控件
VB--DataGrid 控件的使用

使用DataGrid 控件DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示Recordset 对象的记录和字段。
可以使用DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。
DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。
当在设计时设置了DataGrid 控件的DataSource 属性后,就会用数据源的记录集来自动填充该控件,以及自动设置该控件的列标头。
然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。
在运行时,可以在程序中切换DataSource 来察看不同的表,或者可以修改当前数据库的查询,以返回一个不同的记录集合。
注意DataGrid 控件与Visual Basic 5.0中的DBGrid 是代码兼容的,除了一个例外:DataGrid 控件不支持DBGrid 的“解除绑定模式”概念。
DBGrid 控件包括在Visual Basic 的Tools 目录中。
可能的用法查看和编辑在远程或本地数据库中的数据。
与另一个数据绑定的控件(诸如DataList 控件)联合使用,使用DataGrid控件来显示一个表的记录,这个表通过一个公共字段链接到由第二个数据绑定控件所显示的表。
使用DataGrid 控件的设计时特性可以不编写任何代码,只通过使用DataGrid 控件的设计时特性来创建一个数据库应用程序。
下面的说明概要地说明了在实现DataGrid 控件的典型应用时的一般步骤。
完整的循序渐进的指示,请参阅主题“DataGrid 方案1: 使用DataGrid 控件创建一个简单数据库应用程序”。
要在设计时实现一个DataGrid 控件1. 为要访问的数据库创建一个Microsoft 数据链接(.MDL) 文件。
请参阅“创建Northwind OLE DB 数据链接”主题,以获得一个示例。
2. 在窗体上放置一个ADO Data 控件,并将其ConnectionString 属性设置为在第1 步中所创建的OLE DB 数据源。
在 VB 中动态添加和删除控件

Wi t h e x t C t l ‘ 为控T u e’ r He i g h t=2 0 0 0
.
.
、 矾d t h=2 0 0 0
. .
Ca p t i o n-I ’ 动态按钮 ”
Wi d nl =2 0 0 0 To p= 1 0 0 0 L e f t =1 0 0 0
置其属性 ,也就是说控件在设计 时已经存在 , 在程序运行过程 中只 能改变其属性 。那么 能不 能在程序运行过程 中添加 或删 除未 引用 的控件 呢? 回答是肯定 的,在程序 运行 过程 中即可以 添加所需要 的控件 , 当用完时就可删除该控件 ,
En dW i t h
.
E n d Su b
F o r m1 . C o n t r o l s . R e mo v e ” b t n O b j 该控件 的名 称为 b t n Ob j
E n d S u b
下:
总 之 ,通 过 Ad d方 法 和 R e mo v e方 法 可
以动 态 的添加 和删 除控件 ,使在 编程 时对 控
用是在创建程序界面时添加 ,然后根据需要设
性
Wi t h F o r ml ! c m d O b j 1 ‘ 为控 件设 置属
Vi s i b l e= T r u e
Ad d ( ” ms d a ag t r i d l i b . d ta a g r i d ” , _” d a ag t r i d 1 ” )
_
个控件并返 回一个对该控件 的引用 。语法如
o b j e c t . Ad d( P r o g l D, n a me , c o n t a i n e r ) 0b j e c t必 需的。一 个对象表达 式 P r o g I D 必 需 的。 一 个标 识 控 件 的 字 符
(完整版)VB6+Access对数据库进行添加删除项目

(完整版)VB6+Access对数据库进行添加删除项目附件2:VB6+Access编程中的数据库操作方法例1:首先,在工程里引用microsoft activex data objects 2.7 library Dim cn As New ADODB.Connection, rs1 As New ADODB.Recordset, sql As String '在通用声明里定义,其中cn是连接对象,rs1是记录集,sql是查询语句cn.Open "provider=microsoft.jet.oledb.4.0;data source=" + App.Path + "\数据库名.mdb" + ""sql = "select * from 表名"rs1.Open sql, cnrs1.MoveFirstDo While Not rs1.EOFCombo1.AddItem rs1("字段名")rs1.MoveNextLooprs1.Close例2:一个用户登录系统'准备工作: 数据库D:\Mydb.mdb 数据库中,建数据表:UserInfo,数据表中,建字段:User,Password,并添加一条记录'点工程->引用选中Microsoft Activex Data Objects 2.7 Library '控件:添加一个文本框,一个命令按钮Private Sub Command1_Click()Dim s As StringDim Conn As New ADODB.ConnectionDim Rs As New ADODB.RecordsetConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\mydb.mdb"'请将数据库名及路径换成你的实际数据库名及路径Dim UserName As StringDim Password As Strings = Text1.TextIf s = "1" Or s = "2" ThenUserName = InputBox("请输入用户名")Password = InputBox("请输入用户密码")sql = "Select * From [UserInfo] where User='" & UserName & "'"'UserInfo请换成你的实际数据表名Rs.Open sql, Conn, 1, 3If Rs.EOF ThenMsgBox "没有找到此用户"ElseIf Rs("Password") = Password ThenIf s ="1" ThenMsgBox "123"ElseIf s = "2" ThenMsgBox "456"End IfElseMsgBox "密码错误"End IfEnd IfEnd IfEnd Sub上面的例子实现了查询如果是要添加,删除,更新等操作,只要编写相应的SQL语句,再用Conn.Execute SQL 就可以了,如:添加的:SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"Conn.Execute SQL '执行后,就添加了一条记录删除:SQL="Delete From [UserInfo] Where User='aaaa'"Conn.Execute SQL '删除用户名为aaaa的用户记录更新:SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"Conn.Execute SQL '执行后,修改用户aaaa的密码为abcdefg以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了例3:Private Sub Form_Load()Dim cnn As ADODB.ConnectionDim my_recordset As ADODB.RecordsetDim connect_string As StringDim statestring As StringSet cnn=New ADODB.ConnectionSet my_recordset=New ADODB.Recordset'连接Access数据库connect_string="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Pe rsist Security Info=False"cnn.Open connect_stringSelect Case cnn.StateCase adStateClosestatestring="adStateClosed"Case adStateOpenstatestring="adStateOpen"End Select'显示连接的状态MsgBox "连接成功!",,statestring'对wzdz表进行查询操作my_recordset.Open "Select * from wzdz",cnnmy_recordset.CloseEnd Sub例4:Dim strConn As String '连接字符串Dim strSql As String 'SQL命令Dim conn As ADODB.Connection '数据源Dim Ado As ADODB.Recordset '记录集strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Persist Se curity Info=False"strSql = "SELECT * FROM bbb"Set conn = New ADODB.Connectionconn.ConnectionString = strConnconn.OpenVB中怎么对数据库进行添加删除修改的操作我用的是DATA控件我已经把VB和ACCESS 2000连接上了,VB 也能正常访问到数据了我希望可以加几的按钮,拥有添加,删除,修改,查询的功能(相关的数据改动就在原本浏览数据的TEXT中录入就行了)分享到:Private Sub Command1_Click()For i = 0 To 5Text1(i).Text = ""Next iAdodc1.RecordSource = "select * from " & s1 & " order by 编号"Adodc1.RefreshIf Adodc1.Recordset.RecordCount > 0 ThenAdodc1.Recordset.MoveLastText1(0).Text = "G" + Format((Val(Right(Trim(Adodc1.Recordset.Fields("编号")), 4)) + 1), "0000")ElseText1(0).Text = "G0001"End IfEnd SubPrivate Sub Command2_Click()If Adodc1.Recordset.EOF = False Thenc = MsgBox("您确认要删除该记录吗?", vbOKCancel, "删除提示信息")If c = vbOK ThenAdodc1.Recordset.DeleteAdodc1.RecordSource = "select * from 人员表"Adodc1.RefreshEnd IfElseMsgBox "当前数据库中没有可删除的数据记录", vbOKOnly, "提示信息"End IfEnd SubPrivate Sub Command3_Click()If Text1(0).Text = "" Or Text1(1).Text = "" ThenMsgBox "请选择需要改动的记录信息!", vbOKOnly, "错误提示"Elsec = MsgBox("确定要修改该记录吗?", vbOKCancel, "提示信息")If c = vbOK Then '如果确认修改的话进行修改操作If Text1(1).Text = "" ThenMsgBox "姓名不能为空值!", 48, "修改信息提示"Else'连接所要修改的数据库con.Open "Provider=SQLOLEDB.1;Password=2752;Persist Se curity Info=True;User ID=sa;Initial Catalog=sample;Data Source=JAMLEEPC"'开始修改数据库con.Execute ("UPDATE " & s1 & " SET 姓名='" & Text1(1). Text & "',年龄=" & Text1(2).Text & ",学历='" & Text1(3).Text & "',年级=" & Text1(4).Text & ",入学时间='" & Text1(5).Text & "' where 编号='" & Trim(Text1(0)) & "'")MsgBox "信息修改成功", 64, "修改信息提示"con.CloseAdodc1.RecordSource = "select * from 人员表"Adodc1.RefreshEnd IfEnd IfEnd IfEnd SubPrivate Sub Command4_Click()Adodc1.RecordSource = "select * from 人员表where 编号='" + Text1(0).T ext + "'"Adodc1.RefreshIf Adodc1.Recordset.RecordCount > 0 ThenMsgBox "该信息已存在,信息保存不成功", 64, "保存信息提示"Elsecc = MsgBox("您确定要保存该信息吗?", 33, "信息保存提示") If cc = vbOK ThenIf Text1(1).Text = "" Or Text1(2).Text = "" Or Text1(3).Text = "" Or Text1(4).Text = "" Or Text1(5).Text = "" ThenMsgBox "请确认,人员的姓名、年龄、学历、年级和入学时间不能为空", 48, "保存信息提示"Elsecon.Open "Provider=SQLOLEDB.1;Password=2752;Persist Security Info=True;User I D=sa;Initial Catalog=sample;Data Source=JAMLEEPC"con.Execute ("insert into 人员表values('" & Text1(0).Text & "','" & Text1(1).Text & "','" & Text1(2).Text & "','" & Text1(3).Text & "','" & Text1(4).Text & "', '" & Text1(5).Text & "')")MsgBox "信息修改成功", 64, "修改信息提示"con.CloseAdodc1.RecordSource = "select * from 人员表"Adodc1.RefreshEnd IfElseEnd IfEnd IfSet DataGrid1.DataSource = Adodc1End Sub给你段代码参考下,这个就是添加,删除,修改的代码。
ActiveX控件的动态创建和删除

ActiveX控件的动态创建和删除4. Active X 控件的动态创建和删除以上论述的方法适合于控件在应用程序[ying yong cheng xu]工具箱(TOOLBOX )中的情况,而Active X 控件一般在应用程序[ying yong cheng xu]运行机器上,但没有在工具箱中,这种情况则需要先进行注册,方法是利用 Regsvr32 在 Windows 环境中注册,或者在 VB 代码中进行注册,方法如下:Shell(Systempath &“ regsvr32.exe /s /I" & MyControlName, vbHide)其中Systempath 是Regsvr32.exe 所在的路径,MyControlName 是控件名字(包括路径)若要撤销,可以如下操作:Shell(Systempath &“ regsvr32.exe /s /U" &MyControlName, vbHide)下面讨论注册但是未出现在工具箱( TOOLBOX )中的 Active X 控件的情况,这其中也包括 VB 自带的一些 Active X 控件的使用。
具体的方法就是利用VBControlExtender 对象。
VBControlExtender 对象与EventInfo 相结合能提供事件陷井捕捉,它提供了一套通用的属性、方法、事件给开发人员,它的一个突出特点是能编程设计控件的事件,声明时若使用WithEvents 关键字,则会有个特殊的事件ObjectEvent(Info As EventInfo) ,它能捕捉到对象使用 RaiseEvent 产生的所有事件, EventInfo 数据结构[jie gou][shu ju jie gou]映射[ying she]了事件的名称、参数个数和参数的值。
VBControlExtender 和 EventInfo 相结合,采用 Select Case 就可以预先将不同类对象的事件放置一起,各自独立[du li]运作。
vb动态添加删除控件汇总

VB 动态添加删除控件汇总1. 概述在使用Visual Basic 进行程序设计的过程中,如果能在运行时刻动态地创建和删除控件,可以极大地丰富界面的处理和变化。
本人在设计网络监控系统时,需要在原理图与实物示意图间切换。
切换的过程采用本文介绍控件的动态创建和删除来实现,有效地节省了系统资源,同时也有利于简化界面的维护。
下面将就Visual Basic 6.0 中的控件在运行时刻的创建和删除的两种方法——控件数组和控件集合作详细的阐述。
2. 基于控件数组的动态控件的创建与删除vb 中的控件数组实际上也是一种数组,其中的每个控件具有相同的Name 属性,但具有不同的Index 属性,在这里Name 属性类似于数组的名字,而Index 属性类似于数组的下标同时,控件数组也支持普通VBA 数组的LBound 、UBound 和Count 方法,控件数组中的控件可以共享一个事件过程,便于代码的编写和集中处理,这正是使用控件数组的最大的理由。
但是控件数组与普通的数组并非完全一样,它不需要定义大小,只有这样我们才可以动态的扩展[kuo zhan]它。
下面给出利用Load 命令动态添加控件和Unload 命令动态删除控件的一般方法:(1)首先在窗体上放置一个TextBox ,其Name 属性设置为Text1 ,Index 属性设置为0 ,这样我们就创建了一个TextBox 控件数组,其中有一个成员。
(2)在窗体上放置一个命令按钮Command1 ,在其Click 事件中添加如下的代码:LoadText1(1)Text1(1).left=0Text1(1).visible=true(3)在窗体上放置一个命令按钮Command2 ,在其Click 事件中添加如下的代码:Unload Text1(1)(4)运行。
单击命令按钮Command1 ,窗体上会出现一个新的文本框;单击命令按钮Command2 ,窗体上刚出现的新的文本框就被删除。
vb中如何动态添加删除控件

vb中如何动态添加删除控件用Controls.Remove(控件) 动态删除控件。
注意:在VB中只能动态删除那些动态添加的控件;不允许删除在窗体设计器上布置的控件!示例如下:(1)创建一个VB工程(2)在Form1上布置两个Command(3)窗体代码Option Explicit' 声明要被动态添加/删除的控件Dim x As Label'-----------------------------' 动态添加一个Label控件'-----------------------------Private Sub Command1_Click()If x Is Nothing ThenSet x = Controls.Add("bel", "label1")x.Move 150, 150x.AutoSize = Truex.Caption = "这个是动态添加的标签" x.Visible = TrueEnd IfEnd Sub'-----------------' 动态删除控件'-----------------Private Sub Command2_Click()If x Is Nothing Then Exit Sub Controls.Remove xSet x = NothingEnd SubPrivate Sub Form_Load() Command1.Caption = "添加控件" Command2.Caption = "删除控件" End Sub(4)运行窗体启动点击“添加控件”按钮点击“删除控件”按钮。
在VB中动态创建与卸载控件方法研究——以学校考勤系统为例

关键词 : VB ; 软件 ; 动态 ; 控 件
中 图分 类 号 : TP 3 0 3
文 献标 识 码 : A
文章 编 号 : 1 6 7 2 — 7 8 0 0 ( 2 0 1 3 ) 0 0 5 — 0 0 3 2 — 0 2
为:
0 引 言
用 VB开 发 软 件 , 有 时 会 碰 到 控 件 的 实 际 使 用 数 量 不 确 定 的情 况 。比 如 , 在 开发 学校 考勤 系统 时 , 用 一 个 复 选
但是 , 这 种 创 建 控 件 方 法 需 要 人 工 指 定 相 应 的 属 性 值, 并通过 Wi t h Ev e n t s 指 定 控 件 的事 件 。
通 过 对 比 以上 两 种 方 法 , 开 发 学 校 考 勤 系统 中碰 到 的
勤, 班级有多少人就需要 显示 多少个 复选 框 , 然ห้องสมุดไป่ตู้而 每 个 班
级的学生数不一定相同 , 这 时 候 如 何 实 现 在 一 个 窗体 中灵
活 地 显 示 各 个 班 级 的名 单 呢?
班 级 名 单 情 况 不 一 的 问题 , 用 控 件 数 组 的方 法 解 决 比较 合 适 。 因为 , 复 选 框 的一 些 属 性 值 都 要 符 合 一 定 的 规 律 , 比 如位置 、 名称 , 同 时 系统 还 需 要 对 复选 框 进 行循 环读 取 , 所 以, 采 用 控 件 数组 的 方 法更 优 。
第1 2 卷 第5 期 2 0 l 3 年 5 月
软 什 导 刊
S of t wa r e Gui de
v0 1 . 1 2N O 5
Ma v. 2 0l 3
在V B中 动 态 创 建 与 卸 载 控 件 方 法 研 究
VB动态添加控件的简单方法

VB动态添加控件并对其进行拖放操作改变位置用Controls.Add添加控件Dim WithEvents mypic As PictureBoxPrivate Sub Command1_Click()Set mypic = Controls.Add("VB.PictureBox", "mypic")mypic.Left = 50mypic.Top = 50mypic.Visible = TrueEnd Sub至于拖放操作,在程序中设置好mypic控件的有关属性后,处理mypic的有关事件即可注意:如果是控件数组的话,建议采用:load 控件数组名(索引) 的方法添加控件'可先手工画一个控件,Visable设置为False,Index设置为0'若需要多个就用load object(index)来加载,并把它们的visable设置为true;不需要多个就真接把原有的那个的visable设成显示就行了。
Private Declare Function ReleaseCapture Lib "user32" () As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ByVal hwnd As Long, ByVal wMsg As Long, _ByVal wParam As Long, lParam As Any) As LongPrivate Sub Command1_MouseDown(Index As Integer, Button As Integer, _Shift As Integer, X As Single, Y As Single)If Button = 1 ThenReleaseCapture '移动控件SendMessage Command1(Index).hwnd, &HA1, 2, 0&End IfEnd SubPrivate Sub Form_Click()On Error GoTo endsubFor i = 1 To 5Load Command1(i) '生成控件Command1(i).Top = Command1(i - 1).TopCommand1(i).Left = Command1(i - 1).Left + Command1(i -1).WidthCommand1(i).Visible = TrueNextExit SubEnd Sub‘例如:添加一个commandbuttonPrivate Sub Form_Load()Form1.Controls.Add "mandButton", "cmdOk", Picture1 With Form1!cmdOk.Visible = True.Width = 500.Caption = "确认(&Y)"End WithEnd Sub‘删除控件Form1.Controls.Remove "ctl1" ctl1为控件名。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
vb中如何动态添加删除控件
Private Declare Function GetCursorPos Lib "user32" (lpPoint As pointapi) As Long
Private Type pointapi
X As Long
Y As Long
End Type
Private Sub Command_Click(Index As Integer)
Text3.Text = 1
End Sub
Private Sub Command_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As S If Index > 0 And Button = 2 Then
Unload Command(Index)
End If
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim mouse As pointapi
GetCursorPos mouse
Text1.Text = Val(mouse.X) * 15 - Me.Left - 50
Text2.Text = Val(mouse.Y) * 15 - Me.Top - 300
If Text1.Text > 1000 Then
If Text3.Text = 1 Then
If Button = 1 Then
i = Command.UBound + 1
Load Command(i)
Command(i).Left = Text1.Text
Command(i).Top = Text2.Text
Command(i).Caption = Str(i)
Command(i).Visible = True
End If
End If
If Text3.Text = 2 Then
If Button = 1 Then
i = Label.UBound + 1
Load Label(i)
Label(i).Left = Text1.Text
Label(i).Top = Text2.Text
Label(i).Caption = Str(i)
Label(i).Visible = True
End If
End If
If Text3.Text = 3 Then
If Button = 1 Then
i = Text.UBound + 1
Load Text(i)
Text(i).Left = Text1.Text
Text(i).Top = Text2.Text
Text(i).Visible = True
End If
End If
End If
End Sub
Private Sub Label_Click(Index As Integer)
Text3.Text = 2
End Sub
Private Sub Label_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single If Index > 0 And Button = 2 Then
Unload Label(Index)
End If
End Sub
Private Sub Text_Click(Index As Integer)
Text3.Text = 3
End Sub
Private Sub Text_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) If Index > 0 And Button = 2 Then
Unload Text(Index)
End If
End Sub
无法在窗体上添加控件是为什么
问题补充:
小弟明白,但是我上面的程序错在什么地方,无法显示控件啊,谢谢
推荐答案
Private Sub Form_Load()
Form1.Controls.Add "mandButton", "cmdObj1", Frame1
With Form1!cmdObj1
.Visible = True
.Width = 2000
.Caption = "Dynamic Button"
End With
End Sub
其他回答共1条
动态添加控件有两种方法,一种是添加一个控件,一种是再已存在的控件组里动态添加组员。
法1:dim withevents CMD as commandbutton
set CMD=controls.add(""mandbutton","CMD1")
之后设置CMD1的各个属性即可
法2:先在设计窗口上创建一个控件数组组员,比如名为CMD1(0)的一个按钮,然后在程序中使用Load方法加载新组员,比乘以15是坐标两种单位的换算,VB默认坐标单位是tiwp(缇),缇与像素之间换算关系是: 15缇=1像素
Single, Y As Single)
e, Y As Single) As Single, Y As Single)
Load方法加载新组员,比如 load CMD1(1),load CMD1(2)...之后再设置其属性即可。