
正文
vb.net动态加载控件 vba动态添加窗体控件
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net 如何区分动态加载相同控件的事件处理,如加载了两个combox,添加事件后如何区分选择了其中哪一个
就算有两个combox也是不能同名的。
不会触发同一个事件,两个事件分开写所以没必要去区分,相同的部分写到一个过程里面来调用,就算区分也可以通过获取焦点在哪里来判断。
相关问答
Q1: 如何在vb.net里面动态添加控件
Private WithEvents NewTextBox As TextBox
'通过使用WithEvents关键字声明一个对象变量为新vb.net动态加载控件的命令按钮
Private Sub Command1_Click()
If NewTextBox Is Nothing Then
Set NewTextBox = Controls.Add("VB.TextBox", "cmdNew", Form1)
NewTextBox.Move 200, 200
NewTextBox.Width = Form1.Width - 450
NewTextBox.Height = Form1.Height - 1400
NewTextBox.Visible = True
End If
End Sub
Private Sub Command2_Click()
If NewTextBox Is Nothing Then
Exit Sub
Else
Controls.Remove NewTextBox
Set NewTextBox = Nothing
End If
End Sub
Q2: VB.NET 用二维数组的方式动态加控制 例如在窗体上动态添加GroupBox,然后再在GroupBox里动态添加控件
下面这段代码完成vb.net动态加载控件,在窗体上用语句添加2个 GroupBox控件vb.net动态加载控件,且在每个GroupBox控件中添加4个 RadioButton 控件。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
'添加2个GroupBox
Dim MyGroupBox(2) As GroupBox
For i = 1 To 2
'将一个GroupBox控件加入到Form上
MyGroupBox(i) = New GroupBox
Me.Controls.Add(MyGroupBox(i))
'设置该GroupBox控件vb.net动态加载控件的属性
MyGroupBox(i).Height = 240
MyGroupBox(i).Width = 600
MyGroupBox(i).Top = (i - 1) * (240 + 20) + 20
MyGroupBox(i).Left = 20
'修改新加入控件vb.net动态加载控件的Text值
MyGroupBox(i).Text = "GroupBox" CStr(i)
Next
'每个GroupBox中添加4个单选按钮
Dim MyRadioButton1(4) As RadioButton
Dim MyRadioButton2(4) As RadioButton
For i = 1 To 4
MyRadioButton1(i) = New RadioButton
Me.Controls.Add(MyRadioButton1(i))
MyRadioButton1(i).Parent = MyGroupBox(1)
'设置该GroupBox控件的属性
MyRadioButton1(i).Height = 20
MyRadioButton1(i).Width = 120
MyRadioButton1(i).Top = (i - 1) * (20 + 20) + 40
MyRadioButton1(i).Left = 20
'修改新加入控件的Text值
MyRadioButton1(i).Text = "RadioButton1_" CStr(i)
Next
For i = 1 To 4
MyRadioButton2(i) = New RadioButton
Me.Controls.Add(MyRadioButton2(i))
MyRadioButton2(i).Parent = MyGroupBox(2)
'设置该GroupBox控件的属性
MyRadioButton2(i).Height = 20
MyRadioButton2(i).Width = 120
MyRadioButton2(i).Top = (i - 1) * (20 + 20) + 40
MyRadioButton2(i).Left = 20
'修改新加入控件的Text值
MyRadioButton2(i).Text = "RadioButton2_" CStr(i)
Next
End Sub
Q3: vb.net 如何动态添加N个一样的textbox控件?(马上采纳)
自己在窗体上加一个按钮,以下是详细代码(整个类)
Public Class Form1
Private N As Integer '用来记添加要加入textbox的个数
Private PL As Integer = 10 'textbox相对于窗体的Left
Private PT As Integer = 10 'textbox相对于窗体的Top
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.AutoScroll = True '窗体自动显示滚动条
N = 10 '初始化N为10
For i = 1 To N
Dim newtextbox As New TextBox
newtextbox.Left = PL
newtextbox.Top = PT
Me.Controls.Add(newtextbox)
PT += newtextbox.Height + 10 '各 newtextbox上下间隔10-------PL不变是希望左对齐
Next
End Sub
End Class
Q4: vb.net 动态添加大量控件严重卡顿怎么办
这是不可避免的,除非更换电脑硬件,让处理器及内存处理得更快,或是不要用自带的 Panel 和 Label 控件,自定义一个容器,内容自绘。
卡顿主要原因:
1、控件多了,电脑必然会慢,因为在 Windows 里每个控件都相当于一个窗口,有自己的句柄,系统需要维护对应的窗口消息,那么一定会卡顿,只能缓解不能消除。
2、可以用多线程,在子线程中更新控件,通过委托的方式通知主线程,可以有效缓解卡顿的问题。
关于vb.net动态加载控件和vba动态添加窗体控件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







