Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Запись item в ListBox на другой форме


Автор: gozip 11.10.2007, 13:27
Здравствуйте, уважаемые! Подскажите пожалуйста, а то я что-то никак не соображу. Есть главная форма (Form1), на ней TextBox1, TextBox2, Button1; и другая форма (fMessageLog), на которой расположен ListBox. При нажатии на Вutton1 открываеться fMessageLog и в ListBox выводятся данные из TextBox1 и TextBox2. Так вот, при повторном нажатии на Button1 открываеться второй экземпляр fMessageLog и в ListBox записываются уже другие данные. Как сделать, чтобы при повторном нажатии (при условии, что я не закрываю fMessageLog!), в ListBox добавлялись данные из TextBox1 и TextBox2?

Код


Form1:

private void btnOK_Click(object sender, EventArgs e)
        {
                            fMessageLog frm1 = new fMessageLog(this); // создаем новую форму
                            frm1.Show(); // отображаем новосозданную форму
                            frm1.lbMessages.Items.Add(TextBox1.Text);
                            frm1.lbMessages.Items.Add("----------------");
                            frm1.lbMessages.Items.Add(TextBox2.Text);
        }

fMessageLof:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Project1
{
    public partial class fMessageLog : Form
    {
        private Form1 parentForm;
        public fMessageLog(Form1 parentForm)
        {
            this.parentForm = parentForm;
            InitializeComponent();
        }
    }
}



Заранее спасибо!

Автор: UserNet 11.10.2007, 13:37
Можешь сделать, так в конструктор твоей формы fMessageLog дабавить два текстовых параметра, соответсвенно текст с TextBox1 и TextBox2, и вызывать их с этими параметрами, и просто потом с ними спокойно работать, должно работать.

Автор: Injener 11.10.2007, 13:40
ну так ты читай код который ты сам и пишешь - тыже сам при нажатии создаешь MessageLog и открываешь его

Автор: gozip 11.10.2007, 13:48


Цитата(Injener @  11.10.2007,  13:40 Найти цитируемый пост)
ну так ты читай код который ты сам и пишешь - тыже сам при нажатии создаешь MessageLog и открываешь его


А как мне узнать открыта ли уже вторая форма или нет?

Автор: gozip 12.10.2007, 11:47
Цитата(gozip @  11.10.2007,  13:48 Найти цитируемый пост)
А как мне узнать открыта ли уже вторая форма или нет? 


Все, сделал, все работает:

Код


Form1:

fMessageLog frm2 = new fMessageLog();

private void btnOK_Click(object sender, EventArgs e)
        {
            if (frm2 == null || frm2.IsDisposed)//проверка 2-й формы
                        {
                            frm2 = new fMessageLog();
                            frm2.Show();
                            frm2.lbMessages.Items.Add(Text1.Text);
                            frm2.lbMessages.Items.Add("----------------");
                            frm2.lbMessages.Items.Add(Text2.Text);
                        }
            else
                        {
                            frm2.Show();
                            frm2.Activate();
                            frm2.lbMessages.Items.Add(Text1.Text);
                            frm2.lbMessages.Items.Add("----------------");
                            frm2.lbMessages.Items.Add(Text2.Text);
                        }
        }



 smile 

Всем пасип!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)