如果是
目前创新互联公司已为超过千家的企业提供了网站建设、域名、雅安服务器托管、绵阳服务器托管、企业网站设计、隆昌网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
VB
6.0,您可以考虑通过设置全局变量来在两个窗体间传递数据。
如果是
VB.NET
可以这样来进行:
假设登录对话框为Form2,确定按钮名称为CmdOK:
将
Form2
的
AcceptButton
属性设置为
CmdOK
将
Form2
的
CmdOK
按钮的
DialogResult
设置为
OK
在
Form1
需要添加显示对话框代码的位置添加:
Dim
Dialog
As
New
Form2
If
Dialog.ShowDialog
=
Windows.Forms.DialogResult.OK
Then
Me.Text
=
"XXX系统
-
"
Dialog.TextBox1.Text
End
If
这样在Form1主窗口内的标题栏就会显示用户名了。
同理,可以通过访问Dialog中的任何对象来取得对话框中的任何信息。
新窗体中写
构造函数
,然后调用。
比如你要调用的新窗体是From1.cs这个窗体,
public
Form1(要传入的参数)
{
//把传入的参数传入窗体中
//执行窗体标准内容
}
然后在需要调用的地方调用
Form1
f
=
new
Form1(传出的参数);
'--------Form1--------
Dim
f2
As
Form2
Private
Sub
Command1_Click()
Set
f2
=
New
Form2
f2.Show
vbModal
End
Sub
'--------Form1
End--------
'--------Form2--------
Dim
WithEvents
f3
As
Form3
Private
Sub
Command1_Click()
Set
f3
=
New
Form3
f3.Show
End
Sub
Public
Sub
f3_f2W()
Me.Command1.Caption
=
"f2W"
End
Sub
'--------Form2
End--------
'--------Form3--------
Public
Event
f2W()
Private
Sub
Command1_Click()
RaiseEvent
f2W
End
Sub
'--------Form3
End--------
f.Show();
如此就能实现调用了。
通过Database吧!不然得通过消息处理API比如
Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hwnd As IntPtr, _
ByVal wMsg As Integer, _
ByVal wParam As Integer, _
ByVal lParam As Integer) _
As Boolean
但必须得事先知道另外一个项目的text1的句柄
用form的ShowDialog这个功能,这个是可以进行窗体间的传值的。
比如在父窗体上需要传的值是textbox1的内容,子窗体是childform.
那么在父窗体上的点击事件中可以这样写
dim frm as childform = New childform
'要在子窗体上的textbox1里显示父窗体中的textbox1中的内容,这样写
frm.textbox1.text = me.textbox1.text
'最后
frm.showdialog()
这样就可以了。
如果说你三个窗体完全一样,那你也不用写三个一样的窗体只要写一个就行了,在不同的按钮事件中做不同的赋值即可。
不过这样打开的子窗体是模态窗体,也就是说在子窗体显示之后,要对父窗体进行操作必需关闭子窗体才行。
在form2中写
private string formtext1;
public string Formtext1
{
get { return formtext1; }
set { formtext1= value; }
}
在form1中
form2.Formtext1=text1.Text();
form2.show();
在form2中页面加载是给text2 赋值 text2.Text=formtext;
Public Sub checkInjectionWithNoKeyword()
Dim injection_Type As String = My.Forms.SqlInjection.ComboBox_Type.Text.Trim()
Dim my_checkUrl As String = My.Forms.SqlInjection.ComboBox_Url.Text.Trim()
end sub
这个改成放在窗体内就行了,我也有遇到同样的问题,最后只好放窗体里才能实现。
网上找的什么委托都是不行的。