隐藏表单而不是关闭表单,希望将datagridview数据保留在表单2上,并在需要时将其显示为可见,而不是始终加载

时间:2019-07-05 12:54:35

标签: c# datagridview

我有形式Cashsale和形式库存,形式Cashsale是主要的,形式Cashsale中的文本框要求用户输入项目的代码,一旦代码错误而不是形式库存出现,它将从数据库中加载datagridview数据集与可能的类似股票代码用户已在文本框中输入内容, 现在我的问题是,每当用户键入错误的代码时,第二种形式就必须始终进入数据库并获取代码。我想以某种方式隐藏表格2(stockform),并将数据始终保留在datagridview中。我已经尝试了所有东西.hide(),.showdialog(),.show(),但是每次创建新实例的形式时,datagridview必须获取数据需要一段时间。

这是Enter keydown事件中的代码,它使用户形成2(股票形式)

// FORM1现金销售表格代码:

                    using (var form2 = new frmStock(this))
                   {


                        form2.label1.Text = txtItemCode.Text;
                        txtItemCode.Text = "";
                        form2.ShowDialog();


                    }

//这是表单2(股票表单)上的代码,该代码隐藏了表单并将//数据发送到表单1(现金)。

// FORM2库存表代码:

           if (e.KeyCode == Keys.Enter)
        {
            e.SuppressKeyPress = true;



             OleDbConnection objConn = new OleDbConnection(conn);
             objConn.Open();
             OleDbDataAdapter ada2 = new OleDbDataAdapter("SELECT onhand,desc,COST,L_ISSUE,L_receipt,pack,price_b,pdate FROM STMAST.DBF where CODE ='" + dgStock.Rows[dgStock.SelectedCells[0].RowIndex].Cells[0].Value.ToString() + "'", objConn);
             DataTable dt2 = new DataTable();
             ada2.Fill(dt2);

             for (int M = 0; M < dt2.Rows.Count; M++)
             {
                 DataRow dr2 = dt2.Rows[M];

                 formsale.txtDesc.Enabled = true;
                 formsale.txtQauntity.Enabled = true;
                 formsale.txtPrice.Enabled = true;
                 formsale.txtDesc.BackColor = SystemColors.InactiveCaption;
                 formsale.txtQauntity.BackColor = SystemColors.InactiveCaption;
                 formsale.txtPrice.BackColor = SystemColors.InactiveCaption;


                 formsale.txtItemCode.Text = dgStock.Rows[dgStock.SelectedCells[0].RowIndex].Cells[0].Value.ToString();
                 formsale.txtDesc.Text = dr2["DESC"].ToString();
                 formsale.txtQauntity.Text = "1";
                 formsale.txtPrice.Text = dr2["Price_b"].ToString();

                 formsale.txtOnhand.Text = dr2["onhand"].ToString();
                 formsale.txtPack.Text = dr2["pack"].ToString();


                 formsale.txtPriceDate.Text = Convert.ToDateTime(dr2["pdate"].ToString()).ToShortDateString();
                 DateTime LastSoldDate;
                 LastSoldDate = Convert.ToDateTime(dr2["L_issue"]);

                 TimeSpan differenceSoldDate = DateTime.Now - LastSoldDate;

                 if (differenceSoldDate.Days < 7 && differenceSoldDate.Days > 2)
                 {
                     formsale.txtLastSold.Text = differenceSoldDate.Days.ToString() + " Days(s) ago";
                 }
                 else if (differenceSoldDate.Days == 0)
                 {
                     formsale.txtLastSold.Text = "Today";
                 }
                 else if (differenceSoldDate.Days == 1)
                 {
                     formsale.txtLastSold.Text = "Yesterday";
                 }
                 else
                 {
                     formsale.txtLastSold.Text = Convert.ToDateTime(dr2["L_issue"].ToString()).ToShortDateString();
                 }

             }
             objConn.Dispose();
             objConn.Close();

             formsale.txtItemCode.BackColor = SystemColors.InactiveCaption;
             formsale.txtQauntity.Focus();
             formsale.txtQauntity.BackColor = SystemColors.Window;
             formsale.ActiveControl = formsale.txtQauntity;

             this.Hide();



        }

0 个答案:

没有答案