zoukankan      html  css  js  c++  java
  • Winform 的dadagridview控件的修改操作

          在.NET中,我们一般用datagridview这个控件来获取存储过程执行的返回值以输出显示.针对这种情况而言,通常的做法是在其CLICK事件中添加代码,通过激发此事件,调用数据操作,调用存储过程,执行SQL,修改数据库存储的内容。如果用架构的话就更省事,同时避免了对数据层的频繁操作.
         还有一种更简单的办法,datagridview这个控件本来就带有增删改查的功能,先绑定好数据源,注意:一定把主键绑定进去,这个主键也是所谓的那个要删除的行的主键,没问题的就OK了,直接实现删除功能!

    在删除操作中的提示确认框
                DialogResult result = MessageBox.Show("确定删除?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                switch (result)
                {
                    case DialogResult.OK: MessageBox.Show("你按了确定"); break;
                    case DialogResult.Cancel: MessageBox.Show("你按了取消"); break;
                }
                //DialogResult r = MessageBox.Show("真的要删除此行吗?", "提醒", MessageBoxButtons.YesNo);
                //if (r.ToString() == "Yes")
                //    e.Cancel = false;
                //else e.Cancel = true;

    右键弹出菜单框的两种做法:

    1:是使用dataGridView的CellMouseDown事件,判断点击的鼠标是不是右键按钮,不建议这种做法。
            private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    if (e.RowIndex >-1)
                    {

                        //弹出操作菜单
                        contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
                    }

                }
            }

    2:dataGridView的CellContextMenuStripNeeded事件是专门为我们提供上下文菜单栏的事件,准备好了。 

       private void dataGridView2_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
            {
                if (e.RowIndex >-1 )
                {
                    e.ContextMenuStrip = this.contextMenuStrip1;
                }
            }

    为datagridview控件直接增加一行数据,原本我们可以通过datagridview.Rows.Add(row)直接增加一行的,但是,往往我们会给datagridview绑定数据,这时就会报“控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行”这个错,

    这时我们可以通过添加DataTable,再绑定datagridview来达到相同的效果。

                DataTable dt = (DataTable)datagridview.DataSource;

                DataRow dr = dt.NewRow();        
                dr[1] = "N";
                //dt.Rows.Add(dr);

                // dt.Rows.InsertAt(dr, currentRowIndex);
                dataGridView.DataSource = dt;

           

    void dataGridView2_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
    {
      if (e.Control)  //组合键 ,按下Ctrl建
      {

  • 相关阅读:
    清除微信浏览器缓存
    JS实现HTML标签转义及反转义
    mvc中服务器端、客户端属性验证
    Ajax.ActionLink参数详解
    Ajax.BeginForm参数详解
    AjaxHelper简介
    将博客搬至CSDN
    Sequelize小记
    端口: 查看端口状态
    搭建git服务器
  • 原文地址:https://www.cnblogs.com/panjun/p/1955601.html
Copyright © 2011-2022 走看看