2015-02-14 7 views
-1

Я довольно новичок в C#. Я использую VS 2010.Передача переменных из класса

Что является самым простым способом передать многие переменные от form1 до form2? У меня есть класс, который содержит более 10 переменных, но я не знаю, как их передавать за один раз.

Возможно, есть лучший способ сделать это?

+4

Просто передайте экземпляр класса. – Steve

+4

В вашем вопросе можно было бы использовать некоторые дополнительные особенности и примеры –

+3

Умные способы Lotta сделать это ... без какого-либо кода того, что вы пытаетесь сделать, трудно сказать, что лучше. –

ответ

-2

Поместите public перед всеми вашими переменными. Затем при настройке form2 вы обычно получаете текст в главном окне кода, говорящий public class Form2 : Form. Замените его на public class Form2 : Form1, чтобы он принял все свойства Form1.

+0

Что делать, если OP хочет объявить некоторые свойства частными? Я не думаю, что ваш метод будет достаточным. – Anurag

+0

Claro, он не будет работать для частных переменных. Но это, вероятно, самый быстрый и простой способ. Так что да. – Rariolu

+0

это сработало для меня. В следующий раз я постараюсь быть более конкретным и спасибо за все ваши ответы. –

3

Преобразуйте переменные в класс со свойствами. Создайте экземпляр этого класса и передайте его по мере необходимости.

+0

Правильный/лучший ответ - здесь. Имейте класс, который содержит необходимые свойства, которые нужно передать - более чистый код, и все самодостаточно. –

0

Прежде всего, вы должны предоставить более подробную информацию о ваших требованиях, например: , если другая форма должна иметь возможность изменять данные, и эти изменения будут отражены в первой форме, эти две формы работают в одном и том же домене приложения и т.д ..

есть много способов сделать это здесь лишь некоторые из задней части моего ума:

  1. простой способом может быть, у вашего класса реализовать в интерфейсе, раскрывающий данные , и передать его в другую форму в конструкции (getters + seters \ only getters зависит от логики)

  2. Создайте простой объект передачи данных (Data Transfer Object) и передайте его в другую форму.

  3. Использование общего доступа к памяти.

  4. Средний путь сервисный центр ..

  5. Розетки \ контекст sychroniztion

  6. DataBase ...

0

Это легко объявить все ваши переменные как частный, а затем назначить добытчиками и сетки, пример Форма 1:

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     private string var1; 
     private string var2; 

     public string Var1{get{return this.var1;}set{this.var1 = value;}}  
     public string Var2{get{return this.var2;}set{this.var2 = value;}}    

     public Form1() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

Затем вы можете получить или установить переменные из формы 2, например:

namespace WindowsFormsApplication1 
{ 
    public partial class Form2 : Form 
    { 
     public Form2() 
     { 
      InitializeComponent(); 

      Form1 frm = new Form1(); 

      frm.Var1 = "Mystring1"; 
      frm.Var2 = "Mystring2"; 

      MessageBox.Show(frm.Var1); 
      MessageBox.Show(frm.Var2); 
     } 
    } 
} 
+0

Это рекомендуемая ссылка: http: // stackoverflow.ком/вопросы/1568091/почему-потребительные добытчики-и-сеттера – Dn24Z

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