у меня есть кассовая форма и запас формы, кассовая форма является основной, а текстовое поле в кассовой форме запрашивает пользовательский код ввода для элемента, если код неправильный, появляется запас формы, который загружает набор данных вида базы данных из базы данных с возможными подобными кодами запасов, которые пользователь набрал в текстовом поле,
Теперь моя проблема в том, что каждый раз, когда пользователь вводит неправильный код, вторая форма всегда должна идти в базу данных и получать коды. Я хотел бы как-то скрыть форму 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();
}