public class FormA : System.Windows.Forms.Form { ... private string server, dateName, user, pass; public string Server { get { return this.server; } } public string DateName { get { return this.dateName; } } public string User { get { return this.user; } } public string Pass { get { return this.pass; } } ... } public class FormB : System.Windows.Forms.Form { ... FormA forma = new FormA(); string server = forma.Server; string dateName = forma.DataName; string user = forma.User; string pass = forma.Pass; ... }
我在A窗体的 frmMain.Designer.cx 文件中, 用如下定义语句 public static String Server, DateName, User, Pass; public static OleDbConnection Adoconn = new OleDbConnection(); 然后在B窗体中, 用如下语句 frmamin.Server 或 frmmain.Adoconn 都可以访问如果不加 static 关键家,就没办法使用
string server = a.Server;
{
Form a = new frmMain();
string server = a.Server;
}提示错误 1 “System.Windows.Forms.Form”并不包含“Server”的定义 F:\新建文件夹\ycgl\frmPass.cs 26 31 ycgl不知道为什么不行呀,在delphi 中加一个 user frmmain 就可以使用了,这个里面该如何用呀
Form1 a=null;
public void SetA(Form1 f)
{
a=f;
}
然后再在A窗体中调用B窗体的地方写插入如下程序
Form2 b=new Form2()
b.SetA(this);
b.ShowDialog();
我这样写就可以了
string server = frmMain.Server;
用new可以,但是关键是要看你的变量使用的范围,你每次实例化都可以,但是他们彼此间没什么联系,如果你定义为static,就可以都控制这些变量
-----------------------------------------------------------------------------------
支持这个
{
...
private string server, dateName, user, pass;
public string Server
{
get { return this.server; }
} public string DateName
{
get { return this.dateName; }
} public string User
{
get { return this.user; }
} public string Pass
{
get { return this.pass; }
} ...
}
public class FormB : System.Windows.Forms.Form
{
...
FormA forma = new FormA();
string server = forma.Server;
string dateName = forma.DataName;
string user = forma.User;
string pass = forma.Pass;
...
}
用如下定义语句
public static String Server, DateName, User, Pass;
public static OleDbConnection Adoconn = new OleDbConnection(); 然后在B窗体中,
用如下语句
frmamin.Server 或 frmmain.Adoconn
都可以访问如果不加 static 关键家,就没办法使用