WinForm: Передача инфы из одной в другую форму
От: algoritm256  
Дата: 17.05.14 08:44
Оценка:
Здравствуйте! Проблема такова: Есть две формы. Одна содержит таблицу(dataGridView) — Наименование товара, Цена, Количество. Вторая Вызывается при нажатии кнопки "Добавить" и посылает в первую введенные в нее значение. Насчет передачи инфы из одной в другую руководствовался вот этим ресурсом http://www.cyberforum.ru/windows-forms/thread110436.html (Пункт 2,5). Проблема: При добавлении вылетает ошибка NullReferenceException was unhandled(Object reference not set to an instance of an object.) при нажатии кпопки "добавить"


public void Добавить_Click(object sender, EventArgs e)
        {
            GoodsCount1 = Count.Text.ToString();
            w_b.GoodsName2 = GoodsName1; (здесь ошибка)
            w_b.GoodsPrice2 = GoodsPrice1;
            w_b.GoodsCount2 = GoodsCount1;
            this.Close();
        }


форма 1

   public partial class Waybil : Form
    {
        private string client = null;
        private string driver = null;
        private string carModel = null;
        private string carKey=null;

        public string GoodsName2 = null;
        public string GoodsPrice2 = null;
        public string GoodsCount2 = null;
        AddWaybilGoods add_waibil_goods = null;
        
        public Waybil()
        {
            InitializeComponent();
            Base base_ = new Base(Share.server_address, Share.login, Share.password, Share.database);
            base_.fill_combo(comboClients, "Clients", "ClientsName");
            base_.fill_combo(comboDrivers, "Drivers", "DriversName");
            base_.fill_combo(comboModel, "Cars", "CarsModel");
        }

        private void Create_Click(object sender, EventArgs e)
        {
            client = comboClients.SelectedItem.ToString();
            driver = comboDrivers.SelectedItem.ToString();
            carModel = comboModel.SelectedItem.ToString();
            carKey =Key.Text.ToString();
            Word.Application word = new Word.Application();
            word.Visible = true;
            Word.Document doc = word.Documents.Add();
            doc.Select();
            word.Selection.TypeText(client);
            word.Selection.TypeText(driver);
            word.Selection.TypeText(carModel);
            word.Selection.TypeText(carKey);
        }

        private void Add_Click(object sender, EventArgs e)
        {
            //здесь вызывается форма для заполнения dataGridView
            add_waibil_goods = new AddWaybilGoods();
            add_waibil_goods.Owner = this;
            add_waibil_goods.Show();
            add_waibil_goods.Focus();
            dataGridView1.Rows.Add(GoodsName2,GoodsPrice2, GoodsCount2);
            dataGridView1.Update();
        }

        private void comboModel_SelectedIndexChanged(object sender, EventArgs e)
        {
            carModel = comboModel.SelectedItem.ToString();
            Base base_ = new Base(Share.server_address, Share.login, Share.password, Share.database);
            base_.find_item(Key, "Cars", "CarsKey", "CarsModel", carModel);
        }
    }


форма 2

   Waybil w_b = null;
        public string GoodsName1 = null;
        public string GoodsPrice1 = null;
        public string GoodsCount1 = null;

        public AddWaybilGoods()
        {
            InitializeComponent();
            w_b= this.Owner as Waybil;
            Base base_ = new Base(Share.server_address, Share.login, Share.password, Share.database);
            base_.fill_combo(AddWaybilGoods1, "Goods", "GoodsName");
        }

        public void Добавить_Click(object sender, EventArgs e)
        {
            GoodsCount1 = Count.Text.ToString();
            w_b.GoodsName2 = GoodsName1;
            w_b.GoodsPrice2 = GoodsPrice1;
            w_b.GoodsCount2 = GoodsCount1;
            this.Close();
        }

        private void AddWaybilGoods1_SelectedIndexChanged(object sender, EventArgs e)
        {
            GoodsName1 = AddWaybilGoods1.SelectedItem.ToString();
            Base base_ = new Base(Share.server_address, Share.login, Share.password, Share.database);
            base_.find_item(Price, "Goods","GoodsPrice", "GoodsName", GoodsName1);// метод принимает TextBox, имя таблицы, имя поля и его значение и вставляет в            текстбокс цену товара 
            GoodsPrice1 = Price.Text.ToString();
        }
    }

Подскажите пожалуйста, где я туплю, если что-то можно сделать лучше, то как. Заранее спасибо большое!
winform c#
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.