скрывать форму, а не закрывать ее; хотелось бы сохранить данные сетки данных в форме 2 и показывать их видимыми при необходимости, а не всегда загружать - PullRequest
0 голосов
/ 05 июля 2019

у меня есть кассовая форма и запас формы, кассовая форма является основной, а текстовое поле в кассовой форме запрашивает пользовательский код ввода для элемента, если код неправильный, появляется запас формы, который загружает набор данных вида базы данных из базы данных с возможными подобными кодами запасов, которые пользователь набрал в текстовом поле, Теперь моя проблема в том, что каждый раз, когда пользователь вводит неправильный код, вторая форма всегда должна идти в базу данных и получать коды. Я хотел бы как-то скрыть форму 2 (stockform) и всегда хранить данные в datagridview. Я перепробовал все .hide (), .showdialog (), .show (), но каждый раз, когда создается новый экземпляр формы, и datagridview должен извлекать данные, что занимает некоторое время.

это код в событии ввода с клавиатуры, который переводит пользователя в форму 2 (stockform)

// КОД ФОРМЫ ПРОДАЖИ НАЛИЧНЫХ ДЕНЕГ:

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


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


                    }

// и это код формы 2 (форма акции), который скрывает форму и отправляет // данные в форму 1 (касса).

// КОД ФОРМЫ ФОРМЫ2:

           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();



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