обновление сетки данных в форме 1 с изменениями в форме 2 - PullRequest
0 голосов
/ 19 августа 2011

Я сделал для того, чтобы щелкнуть одну ячейку строки представления данных в одной форме, скажем, в форме 1, в другой форме, скажем, форма 2 откроется вместе с выбранными данными представления сетки данных в форме 1. ..

Я использую winforms ...c #

Я выполнил некоторые операции с данными представления таблицы данных, и в конце этапа операций форма2 будет закрыта

    NOTE :upto this i have  finished

Я хочу обновить таблицу данных в форме 1 с изменениями, которые у меня естьсделано в форме 2

для этого я сделал вот так ..

форма 1:

     private void productGridview_Cellclick(object sender, DataGridViewCellEventArgs e)
     {

         if (e.ColumnIndex != productgridview.Columns["productimage"].Index) return;

            if (productgridview.SelectedCells.Count == 0) return;

            int selectedrowindex= productgridview.SelectedCells[0].RowIndex;

            DataGridViewRow selectedRow = productgridview.Rows[selectedrowindex];
              if (img is Image)
               {
                   using (ProductDescriptionForm pf = new ProductDescriptionForm())
                   {

                       pf.picture = img;
                       pf.productname = productname;
                       pf.description = desc;
                       pf.productprice = productprices;
                       pf.categoryname = categoryCombobox.Text;
                       pf.productid = productids;
                       pf.ShowDialog(this);
                   }
               }
      }

и в форме 2: я сделал так ...

         public int productid
    {
        get { return _prodid; }
        set { _prodid = value; }

    }
    public Image picture
    {
        get { return pictureBox1.Image; } 
        set { pictureBox1.Image = value; }
    }
   like this  some constructors  i have used and then 

я удалил одну строку в datagridview, используя приведенный ниже код ... это хорошо ..

      private void btnProdDelete_Click(object sender, EventArgs e)
      {
        using(var context = new TsgEclipseEntities())
        {
              var pd = new product(){ product_Id = productid };
              context.products.Attach(pd);
              context.DeleteObject(pd);
              context.SaveChanges();
              this.Close();   // form2 close                   
       }

    }

Теперь я хочу обновить datagridview в form1, как мне это сделать.....

может кто-нибудь иметь представление об этом ...

большое спасибо ....

Ответы [ 3 ]

1 голос
/ 19 августа 2011

1) написать метод привязки данных, который принимает параметр product_id для получения данных в форме 1
2) Перед form2.close инициализируйте класс формы 1 и вызовите метод, передавая только что обновленный product_id и открыв form1.

0 голосов
/ 19 марта 2015

В вашем событии Form2 btnProdDelete_Click перед закрытием формы Установите для DialogResult значение OK - this.DialogResult = OK; Если вы используете ProductDescriptionForm pf - после того, как вы откроете диалоговое окно, - посмотрите, в порядке ли Результат, если они достигли X, он отменен После ShowDialog вы сможете получить доступ к продукту публичной собственности. и вы можете делать то, что вы хотите в форме 1 с этим продуктом, вам не нужно создавать экземпляр формы 1 - это просто происходит как волшебство.

Быстрый простой пример передачи данных из формы 2 в форму 1

0 голосов
/ 19 августа 2011

В Form1 создайте BindingSource в Form1, используйте этот источник данных для Grid в Form1.Передайте тот же источник привязки в форму Form2.Используйте его в качестве источника данных для вашей таблицы в форме 2.

Изменения будут без изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...