如何在以编程方式创建的 datagridview 上执行 CellDoubleClick 事件? C#

问题描述 投票:0回答:1

我以编程方式创建了一个面板,该面板内部是我的 datagridview,它也是以编程方式创建的。这是一个供应商列表,我想在该 datagrdiview 上执行一个

CellDoubleClick
事件来获取其 ID,面板和数据网格视图将隐藏/关闭。我该怎么办?

    DataGridView dgvSupp;

    private void cbSuppID_Click(object sender, EventArgs e)
    {
       pGeneral.Controls.RemoveByKey("pCatHierarchy");
       Panel pSupp = new Panel();
       pSupp.Size = new System.Drawing.Size(239, 196);
       pSupp.Location = new Point(152, 173);
       pSupp.Name = "pSupplier";
       pSupp.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
       this.Controls.Add(pSupp);
       pSupp.BringToFront();
       dgvSupp = new DataGridView();
       dgvSupp.AllowUserToAddRows = false;
       dgvSupp.AllowUserToDeleteRows = false;
       dgvSupp.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
       dgvSupp.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
       dgvSupp.Dock = System.Windows.Forms.DockStyle.Fill;
       dgvSupp.MultiSelect = false;
       dgvSupp.ReadOnly = true;
       dgvSupp.RowHeadersVisible = false;
       dgvSupp.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
       pSupp.Controls.Clear();
       pSupp.Controls.Add(dgvSupp);
       DataTable dt = pc.fetchRecord("VIEW", "FETCHCBSUPP", "", "", "", "", "", "");
       BindingSource source = new BindingSource();
       source.DataSource = dt;
       dgvSupp.DataSource = source;
    }

我尝试过拖放 datagridview 并单击事件属性,但它不起作用

    private void dgvSupp_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        DataGridViewRow row = dgvSupp.Rows[e.RowIndex];

        txtID.Text = row.Cells["Supplier ID"].Value.ToString();
    }
c# datagridview programmatically-created
1个回答
0
投票

@Olivier Jacot-Descombe 它有效。非常感谢,伙计!

© www.soinside.com 2019 - 2024. All rights reserved.