Возьмите на передний план родительскую форму и ведите подсчет списка, который идет от дочерней формы - PullRequest
0 голосов
/ 28 июня 2019

Мне нужно сформировать «SalesProduct» и «SearchProduct». В форме «SalesProduct» при просмотре сетки данных, когда я щелкаю по ячейке datagridview / имени столбца «Имя продукта», открывается форма «SearchProduct», где я ищу элемент, выбираю строку элемента из кнопки-флажка datagridview, затем нажимаю на кнопку «Выбрать», затем спрятать / закрыть кнопку «SearchProduct» и вывести на передний родительский бланк «SalesProduct».

Он также получает данные из списка «searchProduct» в форму «SalesProduct» и добавляет строку в форму «SalesProduct». Когда я снова щелкну столбец Product, он снова откроет форму «searchProduct» и выберет строку из нее, затем закроется после нажатия кнопки «Выбрать» и выведет переднюю форму «SalesProduct», добавит эту новую строку в форму и не удалит другие строки, которые я добавил ранее. .

Моя проблема в том, что форма «SalesProduct» не появляется впереди, когда форма «SearchProduct» закрывается, она открывает новую форму, а также удаляет другие строки, которые я поместил в форму «SalesProduct» ранее.

Мой код указан ниже. Пожалуйста, помогите мне, как вести подсчет и приводить форму перед родителем, не создавая новый экземпляр.

,,,,

public partial class SaleProduct_Form : Form
{
  public List<CommenValue_Class> value { get; set; } 

  public SaleProduct_Form()
  {
    InitializeComponent();
  }

 private void gridSalesProduct_CellEnter(
    object sender, 
    DataGridViewCellEventArgs e)
 {
   if (gridSalesProduct.CurrentCell.ColumnIndex == 1)
   {
     SearchProduct_Form searchProduct = new SearchProduct_Form();
     searchProduct.ShowDialog(this);
   }
 }

private void SaleProduct_Form_Load(
   object sender, 
   EventArgs e)
{
  addToGrid(value);                
}

public void addToGrid(List<CommenValue_Class> val)
{
  if (val != null)
  {

    foreach (CommenValue_Class item in val)
    {
      int n = gridSalesProduct.Rows.Add();    
      gridSalesProduct.Rows[n].Cells["ProductName"].Value = item.Product_Name;
      gridSalesProduct.Rows[n].Cells["Balance"].Value = item.Qty_Balance;
      gridSalesProduct.Rows[n].Cells["Rate"].Value = item.Rate;    
     }
    }
  }
}


public partial class SearchProduct_Form : Form
{
  public SearchProduct_Form()
  {
    InitializeComponent();
  }

  private void btnSelectProduct_Click(object sender, EventArgs e)
  {
    try
    {
      List<CommenValue_Class> CV = new List<CommenValue_Class>();

      foreach (DataGridViewRow item in gridProductList.Rows)
      {
        if (Convert.ToBoolean(item.Cells[0].Value))
        {
          CV.Add(new CommenValue_Class
          {
            Product_Name = item.Cells["Product_Name"].Value.ToString(),
            Qty_Balance = Convert.ToInt32( item.Cells["Balance_Qty"].Value.ToString()),
            Rate = Convert.ToDecimal (item.Cells["Per_Unit_Sale_Price"].Value.ToString())
          });
        }
      }

      SaleProduct_Form saleProduct = new SaleProduct_Form();
      saleProduct.value = CV;
      saleProduct.Show();
      this.Close();
    }
    catch (Exception ex)
    { 
      MessageBox.Show(ex.ToString()); 
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...