2016-05-08 2 views
1

У меня есть форма с некоторыми элементами в ней. Я хочу получить доступ к данным из этой формы в моей основной. Я попытался сделать следующее:Доступ к свойствам из другой формы

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

Посмотрите здесь: http://stackoverflow.com/questions/35897399/access-variables-between-cs-files-in-wpf-c-sharp/35897626#35897626 ... это именно ваша проблема. – Fruchtzwerg

ответ

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; 
} 
+0

Не могли бы вы объяснить свой метод (код) немного больше? Я не могу понять, как его реализовать. Кроме того, как я буду возвращать значения для другой формы позже? – user6274399

Смежные вопросы