Как передавать данные между формами 1 и 2 в C#
Если при создании второй формы, то в конструкторе допиши переменные...
Если форма уже создана, то можно использовать функции, например:
{
this.param1 = param1;
this.param2 = param2;
}
Вар1:
Сделай компонент textBox1 -- public
Если у тебя студия 2005, то зайди в дизайнер(к пр. файл Form1.Disigner.cs) и поства public у textBox1
(подробней о замене смотри ниже)
Если студия 2002, то в файле Form1.cs найди строчку:
измени на:
Вар2:
Создай строковую переменную в превой форме, присвой ей значение едита(переведи в строку если нужно).
Создай объект первой формы во второй и присвой едиту перменную первой формы
Сделай компонент textBox1 -- public
Если у тебя студия 2005, то зайди в дизайнер(к пр. файл Form1.Disigner.cs) и поства public у textBox1
Насколько я знаю, принцип ООП заключается в том, что работа с переменными осуществляется только через функции, а делать переменные Public, тем более, которые по умолчанию создаются private, неправильно.
Создай строковую переменную в превой форме, присвой ей значение едита(переведи в строку если нужно).
Создай объект первой формы во второй и присвой едиту перменную первой формы
Зачем так тяжело...ведь есть же конструктор формы, функции:-)
ЗЫ: Почитай ООП:-) А темболее, что C# позиционириуется как полностью ООП язык:-)
З.Ы. Заранее весьма благодарен
Если при создании второй формы, то в конструкторе допиши переменные...
Если форма уже создана, то можно использовать функции, например:
{
this.param1 = param1;
this.param2 = param2;
}
Статические методы не могут получать доступ к экземплярным свойствам/методам/полям посредством [COLOR=blue]this[/COLOR][COLOR=black]! Дезинформация однако :) [/COLOR]
Да, точно, сорри, обшибка вышла:-(
{
private string firstName;
private string lastName;
private string telephoneNumber;
...... //свойства и конструктор
}
public class MainForm: Form // твоя главная форма с дата гридом
{
// обработка двойного клика по датаГирду
public void dataGrid_DoubleClick(object sender, EventArgs args)
{
Person cP = new Person(bla - bla - bla); //считать данные с датаГрида и создать объект Персона
ChildModalForm mdF = new ChildModalForm();
mdF.SelectedPerson = сP;
mdf.ShowDialog();
}
}
public class ChildModalForm: Form // форма для отображения инфы с строки в датаГрид
{
private Person selectedPerson; //объект который будет передан с 1вой формы
public Person SelectedPerson // открытое свойство для объекта
{
get { return selectedPerson; }
set { selectedPerson = value; }
}
.......
}
{
//Тут добавляем нужные нам свойства ивенты, и прочее
}
Form1:Form, ISomeInterface
{
//релизуем интерфейс
...............................
Form2 form = new Form2(this)
..........................................
}
Form2:Form
{
private m_SomeInterface;
public Form2(ISomeInterface someInterface)
{
this.m_SomeInterface = someInterface;
}
//и дальше юзаешь данные
}
З.Ы. Все равно всем огромное спасибо за помощь.