Здравствуй ХэшКод, скажите у меня есть
Form1
Form2
На Form1 есть richTextBox1, и на Form2 есть richTextBox1, так вот хотелось бы сделать чтобы при нажатии на кнопку всё что есть в richTextBox1 на Form2 данные передавались в richTextBox1 на Form1... я попробовал изменить поле Modifer на Public, b таким кодом переместить данные
private void btnAdd_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
frm.richTextBox1.Text = this.richTextBox1.Text;
}
Но он почему-то не работает( Подскажите как передать данные между формами?
Всю необходимую форме (или любому объекту) информацию следует передавать в конструкторе:
public partial class Form1
{
public Form1(string text)
{
InitializeComponents();
richTextBox1.Text = text;
}
}
//-------------------------------
...
var form = Form1("some message");
UPD
Также в классе Form
есть свойсвто Owner
, которому можно присвоить форму-владельца. В итоге дочерняя форма будет иметь доступ к родительской через это свойство.
Как вариант, можно использовать делегаты, и передавать данные через них.
public partial class Form1
{
public Form1()
{
InitializeComponents();
sec = new Form2();
sec.Show();
sec.MyDelegateEvent += sewsecondWindow.MyDelegate(sec_MyDelegateEvent);
}
void sec_MyDelegateEvent(string s)
{
richTextBox1.Text = s;
}
}
public partial class Form2
{
public Form2()
{
InitializeComponents();
}
public event MyDelegate MyDelegateEvent;
public delegate void MyDelegate(string s);
private void button1_Click(object sender, RoutedEventArgs e)
{
MyDelegateEvent(richTextBox2.Text);
}
}
Мой вариант:
В Form1 делаем richTextBox1 public. В ней же создаем экземпляр класса Form2
public Form2 form;
Далее, описываем метод:
private void buttonOpenForm2_Click(object sender, EventArgs e)
{
form = new Form2();
form.Tag = this;
form.Show();
}
Ну и собственно в Form2:
public partial class Form2 : Form
{
Form1 form;
public Form2()
{
InitializeComponent();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
((Form1)this.Tag).richTextBox1.Text = richTextBox1.Text;
}
}
P.S. Этот вариант будет сразу же передавать весь текст в Form1, с кнопкой я думаю вы тоже разберетесь.
Используйте #include "Form1.h" в Form2.срр и #include "Form2.h" в Form1.срр, и Ваши формы узнают о существовании друг друга.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можно ли сделать один ScrollBar, который будет прокручивать два RichTextBox? RichTextBox1 - это сам текст, а RichTextBox2 пометки/комментарии к выбранной строке...