2

我有一个 Windows 应用程序。在这个我有一个表格,上面有一个datagridview。现在我在数据库中使用EMPLOYEE MASTER填充 datagridview。因此,当填充数据网格时,我还有 2 个额外的按钮作为数据网格中的其他 2 个 cloumns。现在是编辑和删除,所以数据网格中的每一行都有这些按钮。现在我想通过单击这些按钮添加适当的编辑和删除功能。编辑一个新的表格应该打开。拥有特定员工的所有信息。请帮忙

这是代码:

private void frmemployee_Load(object sender, EventArgs e)
        {
            cmd.Connection = con;
            con.Open();
            adp = new SqlDataAdapter(cmd);
            cmd.CommandText = "Select * from employee";
            adp.Fill(dsemployee,"employee");
            dataGridView1.DataSource = null;
            dataGridView1.Rows.Clear();
            dataGridView1.DataSource = dsemployee.Tables[0];
            dataGridView1.Columns[0].Visible = false;
            DataGridViewButtonColumn editcolumn = new DataGridViewButtonColumn();
            editcolumn.UseColumnTextForButtonValue = true;
            editcolumn.Text = "EDIT";
            editcolumn.Name = "EDIT";
            editcolumn.DataPropertyName = "EDIT";
            editcolumn.HeaderText = "EDIT";
            dataGridView1.Columns.Add(editcolumn);

            cmd.ExecuteNonQuery();
            con.Close();

        }
4

3 回答 3

0

我会在DataGridView CellClick事件中处理:

private void GridCellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex < 0 || e.ColumnIndex < 0)
    {
        return;
    }

    if (dataGridView1.Columns[e.ColumnIndex].Name == "EDIT")
    {
        //edit logic here
    }
    else if (dataGridView1.Columns[e.ColumnIndex].Name == "DELETE")
    {
        //delete logic here
    }
}
于 2013-05-28T06:29:30.197 回答
0

您应该订阅DataGridView.CellContentClick事件,据我所知并处理该事件,弄清楚具体的单元格点击是什么,因此执行适当的操作。

于 2013-05-28T06:29:34.633 回答
0

继续 gzaxx'x 的回答,在逻辑部分,您可以将所选表格行的主键从当前表单传递到新表单。假设它是第一列中的整数,你可以写这样的东西

私人无效GridView1_CellContentClick(对象发送者,DataGridViewCellEventArgs e)

{

int prim_key = (int)dataGridView1.Rows[e.RowIndex].Cells[0].Value;

// 然后打开新表单,您希望编辑并传递主键

Form2 f2 = new Form2(prim_key);

f2.ShowDialog();

}

使用 form2 中的构造函数来接受此值,您可以从数据库中填充您的表单

公共Form2(int primkey){}

于 2013-05-28T06:45:48.777 回答