Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

скопировать значение textbox из одной формы в другую

445
21 июня 2013 года
Charley
176 / / 16.08.2011
Есть две формы, у каждой формы есть свой textbox. Эти формы активны. Как значение textbox второй формы скопировать в textbox первой формы при каком-то событии?
327
22 июня 2013 года
UserNet2008
748 / / 03.04.2010
Самый простой вариант это использовать public переменную.
Для этого в проекте создаём класс, а классе public переменную :

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ChangeTextBoxs
{
    class MyClass
    {
        public static string strTextChangeN { get; set; }
    }
}
Код формы 1:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ChangeTextBoxs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            frm2 = new Form2();
        }
        Form2 frm2;

        private void btnShowForm2_Click(object sender, EventArgs e)
        {
            frm2.Show();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            MyClass.strTextChangeN = textBox1.Text;
        }

        private void textBox1_DoubleClick(object sender, EventArgs e)
        {
            textBox1.Text = MyClass.strTextChangeN;
        }

       
                             
    }
}
Код формы 2:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ChangeTextBoxs
{
    public partial class Form2 : Form
    {
        public Form2()

         {
            InitializeComponent();
         }


        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            MyClass.strTextChangeN = textBox1.Text;
        }

        private void textBox1_DoubleClick(object sender, EventArgs e)
        {
            textBox1.Text = MyClass.strTextChangeN;
        }
       
    }
}
Теперь при DoubleClick на textBox'ах текст будет меняться соответственно выбранного textBox'а.

Результат примерно так:
445
22 июня 2013 года
Charley
176 / / 16.08.2011
А как сделать так, чтобы при нажатии кнопки на form1 текст переходил из form1.textbox переходил в form2.textbox?
327
22 июня 2013 года
UserNet2008
748 / / 03.04.2010
В свойствах textBox'ах установить:


Добавить выше напечатанному коду.

Код формы 1:
Код:
private void bntShowTXForm2_Click(object sender, EventArgs e)
        {
            frm2.textBox1.Text = MyClass.strTextChangeN;
            // или так
            //frm2.textBox1.Text = this.textBox1.Text;
        }

    private void Form1_Load(object sender, EventArgs e)
        {
            MyClass.strTextChangeN = this.textBox1.Text;
        }
Примерно так.
445
23 июня 2013 года
Charley
176 / / 16.08.2011
Извините, я неправильно задал вопрос: А как сделать так, чтобы при нажатии кнопки на form2 текст переходил из form2.textbox переходил в form1.textbox?
327
24 июня 2013 года
UserNet2008
748 / / 03.04.2010
Правильно было-бы создать пользовательское событие, которое следило об изменения переменной strTextChangeTX1
Могу предложить деревянный способ с применением timer, который каждую секунду проверяет переменную strTextChangeTX1, ну Вы понимаете это не есть правильно. Т.К timer очень грузит ресурсы компа.

Код формы 1:
Код:
namespace ChangeTextBoxs
{
    public partial class Form1 : Form
    {
        public static string strTextChangeTX1{get; set;}
        static string strControl {get; set;}
//.....
//.....
private void timer1_Tick(object sender, EventArgs e)
             
        {
            if (!(strControl == strTextChangeTX1))
            {
                this.textBox1.Text = strTextChangeTX1;
            }
            strControl = strTextChangeTX1;
        }
Код формы 2:
 
Код:
private void bntShowTXForm1_Click(object sender, EventArgs e)
        {
            Form1.strTextChangeTX1 = this.textBox1.Text;
 
        }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог