你好,我有一个POS系统有两个datagridview,当我扫描条形码时,产品通过textchanged事件自动添加到购物车datagridview。C#Winforms。当按下清除按钮时,textchanged事件将停止工作
它工作正常,但当我点击“清除按钮”时,textchanged事件将停止工作。任何想法表示感谢你。
清除按钮代码:
private void btnClearcart_Click(object sender, EventArgs e)
{
dgvPOScart.Rows.Clear();
dgvPOScart.Refresh();
if (dgvPOSproduct.Rows.Count > 0)
{
dgvPOSproduct.DataSource = null;
}
DataTable dt = new DataTable("Products");
using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString))
{
if (cnn.State == ConnectionState.Closed)
cnn.Open();
using (SqlDataAdapter da = new SqlDataAdapter("Select ProductID, BrandName, GenericName, Quantity, SellingPrice, Dosage, Form, S,P, VE , Barcode , Category , Description from Products where Status = 'Active' and Quantity > 0", cnn))
{
da.Fill(dt);
dgvPOSproduct.DataSource = dt;
productwidth();
}
}
}
代码来填充产品datagridview的形式负载:
DataTable dt = new DataTable("Products");
private void dgvProductNew()
{
try
{
using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString))
{
if (cnn.State == ConnectionState.Closed)
cnn.Open();
using (SqlDataAdapter da = new SqlDataAdapter("Select ProductID, BrandName, GenericName, Quantity, SellingPrice, Dosage, Form, S,P, VE , Barcode , Category , Description from Products where Status = 'Active' and Quantity > 0", cnn))
{
da.Fill(dt);
dgvPOSproduct.DataSource = dt;
productwidth();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
TextChanged事件代码:
private void txtBarcodeSearch_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
selectedRow = null;
dv.RowFilter = string.Format("Barcode like '{0}%' ", txtBarcodeSearch.Text);
productwidth();
if (txtBarcodeSearch.Text.Length == 13)
{
if (dgvPOSproduct.Rows.Count == 1)
{
selectedRow = 0;
}
if (selectedRow.HasValue)
{
addcartbarcode();
txtBarcodeSearch.Clear();
}
}
}
方法productwidth()的实现是什么? –
这只是产品datagridview先生中列宽的设置。 – StudentDev
你确定textchanged事件是什么不工作或扫描本身? –