【问题标题】:Auto filling datagridview based on cell double click in another datagridview基于单元格双击在另一个datagridview中自动填充datagridview
【发布时间】:2017-07-05 18:31:30
【问题描述】:

我有一个用于计费的 datagridview。我添加了一个单独的 datagridview 来单独显示库存项目。因此,如果我双击一个项目名称,它应该出现在计费数据网格视图列名称项目名称中,并且还自动 colmpete 其他列,例如 mrp 税等。如何做到这一点?我在列出 datagridview 的项目名称中添加了一个 celldoubleclick 事件,并像这样检索单元格值。

private void dgv_ItemNamePOS_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        string a = dgv_ItemNamePOS.CurrentRow.Cells[0].Value.ToString();
        dgv_POS.Rows[0].Cells[1].Value = a.ToString();


    }

该值出现在计费网格视图项目名称列中。我在计费数据网格视图中添加了一个值更改事件,但它没有触发。

SqlConnection con = new SqlConnection(CS);
            con.Open();
            if (dgv_POS.Rows.Count == 0)
            {
                SqlCommand cmd = new SqlCommand("SELECT Item_Code from Items where Name=@Name AND Activate='Yes'", con);
                cmd.Parameters.AddWithValue("@Name", dgv_POS.Rows[0].Cells[1].Value.ToString());
                string k = cmd.ExecuteScalar().ToString();
                dgv_POS.CurrentRow.Cells[2].Value = k;

            }

我想将此项目名称添加到计费数据网格视图中的下一个空闲行。有人可以帮我解决这个问题。我想根据另一个 datagridview 中的项目名称自动填充计费 datagridview 单元格,该单元格在双击时仅包含项目名称。

请看下图了解我的想法。 Sample

【问题讨论】:

    标签: c# .net winforms datagridview


    【解决方案1】:

    其实我并不了解您需要的所有内容,但如果您只需要显示每个账单项目的详细信息,请检查以下内容:

        public partial class Form1 : Form
    {
        List<BillItem> _Items = new List<BillItem>();
    
        public Form1()
        {
            InitializeComponent();
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            DataColumn clmItemName = new DataColumn("clmItemName", typeof(string));
            dt.Columns.Add(clmItemName);
            dt.Rows.Add("Parle-G");
            dt.Rows.Add("Kardjack");
    
            dgv_ItemNamePOS.DataSource = dt;
    
            // to simulate items' details in database
            _Items.Add(new BillItem() { No = 1, ItemName = "Parle-G", Code = "P-G", MRP = "***" });
            _Items.Add(new BillItem() { No = 1, ItemName = "Kardjack", Code = "K", MRP = "@@@" });
        }
    
        class BillItem
        {
            public int No { get; set; }
            public string ItemName { get; set; }
            public string Code { get; set; }
            public string MRP { get; set; }
        }
    
        private void dgv_ItemNamePOS_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string a = dgv_ItemNamePOS.CurrentRow.Cells[0].Value.ToString();
            dgv_POS.Rows[0].Cells[1].Value = a.ToString();
    
           BillItem billItem = _Items.First(item => item.ItemName == a);
    
            dgv_POS.Rows[0].Cells[0].Value = billItem.No.ToString();
            dgv_POS.Rows[0].Cells[2].Value = billItem.Code.ToString();
            dgv_POS.Rows[0].Cells[3].Value = billItem.MRP;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-30
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多