我有一个包含一些元素的表单。我想从我的主表单中访问该表单中的数据。我尝试了以下操作:
private void button1_Click(object sender, EventArgs e)
{
Properties.Settings.Default.emailServer = textBox1.Text;
Properties.Settings.Default.emailServerPort = (int)numericUpDown1.Value;
Properties.Settings.Default.emailServerSsl = (radioButton1.Checked == true) ? true : false;
Properties.Settings.Default.Save();
this.Close();
}
我可以使用以下代码在现有表单中完全加载它:
private void EmailSettings_Load(object sender, EventArgs e)
{
textBox1.Text = Properties.Settings.Default.emailServer;
numericUpDown1.Value = Properties.Settings.Default.emailServerPort;
if (Properties.Settings.Default.emailServerSsl == true)
{
radioButton1.Checked = true;
}
else
{
radioButton1.Checked = false;
}
}
但是,我的问题是我无法从我的主表单访问Properties
。所以我仍然无法访问该表单中的数据。如何从主表单或其他表单中的属性访问数据?
答案 0 :(得分:0)
您已更改设置。您可以从项目的每个位置访问设置。 您在此处设置了form2中的设置,然后您可以从主窗体
访问它 var setting=Properties.Settings.Default.YourSetting;
如果form2和主窗体中的命名空间不同 你必须写得像
var setting=namespaceOfForm2.Properties.Settings.Default.YourSetting;
你也可以在解决方案之下
在第二个表单上创建一个属性
public yourType yourProperty { get;set;}
将数据存储到
yourProperty=yourData;
// set this.DialogResult property if you successfully stored data
this.DialogResult=DialogResult.OK;
从主要形式得到它
Form2 f=new Form2();
if(f.ShowDialog==DialogResult.OK)
{
var yourData=f.yourProperty;
}
示例:
在form2上:
public string Name { get; set;}
public void methodThatYouSetData()
{
Name=txtbx.Text;
this.DialogResult=DialogResult.OK;
}
在主要表格上:
Form2 f=new Form2();
if(f.ShowDialog==DialogResult.OK)
{
string Name=f.Name;
}