怎样在一个窗口向另外一个窗口添加一个控件,比如文本输入框??

Nirvana0 2003-09-24 02:14:03
怎样在一个窗口向另外一个窗口添加一个控件,比如文本输入框??最好有几行代码,谢谢啦.
...全文
100 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2003-09-24
  • 打赏
  • 举报
回复
下面的代码点击FORM1之COMMAND1可为FORM2添加一个命令按钮,该按钮可执行相应的事件:
Private WithEvents NewButton As CommandButton

Private Sub Command1_Click() '增加控件
If NewButton Is Nothing Then

Set NewButton = Form2.Controls.Add("VB.CommandButton", "cmdNew", Form2) '增加新的按钮cmdNew

NewButton.Move 200, 200, 2000, 500 '确定新增按钮cmdNew的位置
NewButton.Caption = "新增的按钮"
NewButton.Visible = True
End If
Form2.Show
End Sub

Private Sub NewButton_Click()
MsgBox "you click newbutton of form2"
End Sub

Private Sub NewButton_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 1 Then NewButton.Caption = "abcde": NewButton.FontItalic = True
End Sub
itcoco 2003-09-24
  • 打赏
  • 举报
回复
怎么样做到动态增加的控件显示某项内容
比如我想改变他们的caption,可是我发现他们只有count,item,lbound,ubound4个属性

所以我如果想显示数据库里的内容怎么办?
fbmsf 2003-09-24
  • 打赏
  • 举报
回复
Findwindows,
setwindowText,
道素 2003-09-24
  • 打赏
  • 举报
回复
api 方法

Option Explicit

Const WS_EX_STATICEDGE = &H20000
Const WS_EX_TRANSPARENT = &H20&
Const WS_CHILD = &H40000000
Const CW_USEDEFAULT = &H80000000
Const SW_NORMAL = 1
Private Type CREATESTRUCT
lpCreateParams As Long
hInstance As Long
hMenu As Long
hWndParent As Long
cy As Long
cx As Long
y As Long
x As Long
style As Long
lpszName As String
lpszClass As String
ExStyle As Long
End Type
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
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
Dim mWnd As Long

Private Sub Command1_Click()
Form2.Show
End Sub

Private Sub Form_Load()
Dim CS As CREATESTRUCT
mWnd = CreateWindowEx(WS_EX_STATICEDGE Or WS_EX_TRANSPARENT, "STATIC", "Hello World !", WS_CHILD, 0, 0, 300, 50, Form2.hwnd, 0, App.hInstance, CS)
Me.Caption = mWnd
ShowWindow mWnd, SW_NORMAL
End Sub
Private Sub Form_Unload(Cancel As Integer)
DestroyWindow mWnd
End Sub


=============================
半亩方塘一鉴开,天光云影共徘徊。问渠哪得清如许,为有源头活水来.
道素 2003-09-24
  • 打赏
  • 举报
回复
api 方法

Option Explicit

Const WS_EX_STATICEDGE = &H20000
Const WS_EX_TRANSPARENT = &H20&
Const WS_CHILD = &H40000000
Const CW_USEDEFAULT = &H80000000
Const SW_NORMAL = 1
Private Type CREATESTRUCT
lpCreateParams As Long
hInstance As Long
hMenu As Long
hWndParent As Long
cy As Long
cx As Long
y As Long
x As Long
style As Long
lpszName As String
lpszClass As String
ExStyle As Long
End Type
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
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
Dim mWnd As Long

Private Sub Command1_Click()
Form2.Show
End Sub

Private Sub Form_Load()
Dim CS As CREATESTRUCT
mWnd = CreateWindowEx(WS_EX_STATICEDGE Or WS_EX_TRANSPARENT, "STATIC", "Hello World !", WS_CHILD, 0, 0, 300, 50, Form2.hwnd, 0, App.hInstance, CS)
Me.Caption = mWnd
ShowWindow mWnd, SW_NORMAL
End Sub
Private Sub Form_Unload(Cancel As Integer)
DestroyWindow mWnd
End Sub


=============================
半亩方塘一鉴开,天光云影共徘徊。问渠哪得清如许,为有源头活水来.
现在还是人类 2003-09-24
  • 打赏
  • 举报
回复
可以用更高级一点的办法,可以是任何控件,还可以是运行时动态添加的,然后用API指定一个新父到你想添加控件的窗口。用CreateObject函数,API用SetParent,可以定义一个Object数组来处理全部的对象,有心的话还可以捕捉和分析控件的属性和事件,还可以做个脚本分析处理,最好的例子是 IE 或 FrontPage 的效果。但需要了解注册表和更多的API。
射天狼 2003-09-24
  • 打赏
  • 举报
回复
写错了,是设计时添加的~~
射天狼 2003-09-24
  • 打赏
  • 举报
回复
写错了,是设计时添加的~~
射天狼 2003-09-24
  • 打赏
  • 举报
回复
TEXT1是在设置时添加的,你想动态添加的控件,在设计时必须都要添加一个,并且INDEX属性都要设置为0
Nirvana0 2003-09-24
  • 打赏
  • 举报
回复
cuizm(射天狼) ( ) 信誉:100
那Text1是怎么添加的呢?
射天狼 2003-09-24
  • 打赏
  • 举报
回复
添加其它的控件与此类似,你自己提高吧~~
射天狼 2003-09-24
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
'这是FORM1里面的一个命令按钮
'先在FORM2里加一个TEXT控件,将Index属性设置为 0
Dim lngNum As Long

lngNum = Form2.Text1.UBound + 1
Load Form2.Text1(lngNum)
Form2.Text1(lngNum).Visible = True
Form2.Text1(lngNum).Left = 100
Form2.Text1(lngNum).Top = 100
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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