winform菜鸟,懂winform的前辈们,能给个例子吗?
就是用DataGridView的绑定多行中,每行都有一个编辑按钮,点击编辑按钮,弹出一个窗口修改相应数据。

解决方案 »

  1.   

    像asp.net的gridview的那种,有增删改查,就是在winform里面不知道怎么弄
      

  2.   

    帮你写了个例子,有点多,不往这贴了
    http://blog.csdn.net/zhangandli/article/details/7720227
      

  3.   

    楼主,不用再列表放按钮,每行读放按钮不美观,,用右键或者双击行进行弹窗修改
     private void tsmEdit_Click(object sender, EventArgs e)
            {
                try
                {
                    int index = dgvList.SelectedCells[0].RowIndex;
                    int Id = Convert.ToInt32(dgvList.SelectedRows[0].Cells["ID"].Value.ToString());
                    EmployeeEdit edit = new EmployeeEdit(true, Id);
                    if (edit.ShowDialog() == DialogResult.OK)
                    {
                        EmployeeModel emp = edit.emp;
                        string sql ="";
                        if (DBHelper.Execute(sql))
                        {
                            bindDgv();
                            dgvList.Rows[index].Selected = true;//列表刷新后重新选中编辑行
                            this.Focus(); 
                            //   MessageBox.Show("员工添加成功!");
                        }
                        else
                        {
                            //   MessageBox.Show("员工添加失败!");
                            return;
                        }
                    }            }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }//设置列表右键
        private void dgvList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    if (e.RowIndex >= 0)
                    {                    if (dgvList.Rows[e.RowIndex].Selected == false)
                        {
                            dgvList.ClearSelection();
                            dgvList.Rows[e.RowIndex].Selected = true;
                        }
                        if (dgvList.SelectedRows.Count == 1 && e.ColumnIndex != -1)
                        {
                            dgvList.CurrentCell = dgvList.Rows[e.RowIndex].Cells[e.ColumnIndex];
                        }
                        dgvList.ContextMenuStrip = contextMenuStrip1;
                    }                else
                    {
                        dgvList.ContextMenuStrip = null;
                        return;
                    }
                }
            }
    //双击弹窗修改
            private void dgvList_DoubleClick(object sender, EventArgs e)
            {
                tsmEdit_Click(null, null);
            }