我在textBox中输入了一些数据,并在form2中的组合框中输入了所选项目,并想在form1中使用相同的数据,我该怎么办呢....
我试过这段代码
frmConfig
是form2,txtSrcIP
是TextBox
public partial class Form1 : Form
{
frmConfig f2 = new frmConfig();
public Form1(frmConfig Cont)
{
f2 = Cont;
}
String SIp = f2.txtSrcIP.text;
}
错误显示在此行String SIp = f2.txtSrcIP.text;
因为字段初始值设定项不能引用非静态字段方法或属性
frmConfig身体 public partial class frmConfig:Form { 私人Form1 f1;
public frmConfig()
{
InitializeComponent();
}
private void btnConnect_Click(object sender, EventArgs e)
{
// Open connection to the database
string conString = "server="+txtSrcIP.Text+";uid="+txtSrcUserId.Text+";pwd="+txtSrcPwd.Text;
using (SqlConnection con = new SqlConnection(conString))
{
con.Open();
// Set up a command with the given query and associate
// this with the current connection.
using (SqlCommand cmd = new SqlCommand("SELECT name from sys.databases", con))
{
using (IDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
cbSrc.Items.Add(dr[0].ToString());
}
}
}
}
private void btnNext_Click(object sender, EventArgs e)
{
if (cbSrc.SelectedItem != null && cbSrc.SelectedItem != "" && cbDest.SelectedItem != null && cbDest.SelectedItem != "")
{
this.Hide();
//Form1 f1 = new Form1();
f1.Show();
this.Close();
}
else
{
MessageBox.Show("Enter all the details");
}
}
}
这就是我正在做的所以我想要form1中的所有文本框和combox值
答案 0 :(得分:2)
在f2
上创建公开属性,公开您需要的控件的Text
属性。
public string TxtSrcIPValue
{
get
{
return this.txtSrcIP.text
}
}
然后使用此属性访问该值。
Private string SIp;
public Form1(frmConfig Cont)
{
f2 = Cont;
SIp = f2.TxtSrcIPValue; // Set the value once the form has been loaded
}
答案 1 :(得分:0)
static frmConfig f2 = new frmConfig();
那么,这些变化如何:
public partial class Form1 : Form
{
static frmConfig f2 = new frmConfig();
public Form1(frmConfig Cont)
{
f2 = Cont;
}
public String SIp;
}
...
private void btnNext_Click(object sender, EventArgs e)
{
if (cbSrc.SelectedItem != null && cbSrc.SelectedItem != "" && cbDest.SelectedItem != null && cbDest.SelectedItem != "")
{
this.Hide();
//Form1 f1 = new Form1();
f1.SIp = f2.txtSrcIP.text;
f1.Show();
this.Close();
}
else
{
MessageBox.Show("Enter all the details");
}
}
答案 2 :(得分:0)
您要使用的控件,更改'修饰符'属性,以便您可以从外部访问它。
答案 3 :(得分:0)
引用MSDN,实例字段的变量初始化程序无法引用正在创建的实例,因此您需要初始化构造函数中的字段。
public partial class Form1 : Form
{
frmConfig f2;
String SIp;
public Form1(frmConfig Cont)
{
f2 = Cont;
String SIp = f2.txtSrcIP.text;
}
}