我有形式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();
}