DataGridView的属性、事件、方法

属性

属性名操作博主翻译
AllowUserToAddRows设置False是否向用户显示用于添加行的选项
Columns编辑列,找到frozen:true拖动滚动条时,固定此列
RowHeadersVisible设置为 false最左侧列是否显示
RowTemplate - DefaultCellStyleDataGridViewRow默认单元格样式修改选中单元格的背景颜色
AutoGenerateColumns若为true,sql语句有几列,gridview就自动显示几列;若为false,手动给gridview绑定需要显示的字段数据源是否自动创建绑定字段
.CurrentCell.RowIndex选中行的索引获取当前活动的单元格的行的索引
CurrentCell.Value获取当前活动的单元格的值
dgv.Rows[dgv.CurrentCell.RowIndex].Cells[0].Value.ToString();获取选中行的第零列的值获取当前活动的单元格的值

事件

1.选定单元格的编辑模式启动时发生

CellBeginEdit

private void datagridview_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            if (e.RowIndex >= 0)	//判断datagridview是否有数据
            {
            	//这种情况一般都是用于:想修改此列必须先勾选前面的checkbox,才允许编辑
            	//当你双击单元格,会判断是否选中了checkBox列
                if (datagridview.Columns[e.ColumnIndex].Name != "xz")
                {
                    DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)datagridview.Rows[e.RowIndex].Cells["xz"];
                    Boolean flag = Convert.ToBoolean(checkCell.Value);
                    if (flag == false)
                    {
                        MessageBox.Show("请先勾选在编辑!");
                        e.Cancel = true;
                        return;
                    }
                }
            }
        }
2 .单击单元格的内容时发生

CellContentClick

private void datagridview_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)	//判断datagridview是否有数据
            {
           	    //判断列的类型(编辑列,在columnType属性查看)
                DataGridViewColumn column = datagridview.Columns[e.ColumnIndex];	
                if (column is DataGridViewCheckBoxColumn)	//如果列是下拉菜单
                {
                    combobox.Text = datagridview.Rows[e.RowIndex].Cells["depid"].Value.ToString();
                }
                if (column is DataGridViewImageColumn)	//如果列是图片
                {
                    try
                    {
                    //传参打开另一个窗体
                     cc = new calltel(datagridview.Rows[e.RowIndex].Cells["Ext"].Value.ToString(), datagridview.Rows[e.RowIndex].Cells["Tel"].Value.ToString());
                     cc.Show();
                    }
                    catch
                    { 
                    };
                }
            }
        }
3 .在释放键时发生(键盘按键抬起)

KeyUp

private void datagridview_KeyUp(object sender, KeyEventArgs e)
        {
        	//前提条件是 焦点在gridview ( 或者先写上 datagriview.focus() )
        	//这几行代码的意思是按回车会选中gridview中的值,然后可以用键盘的上下左右控制选择单元格,然后取值赋值
            base.OnKeyUp(e);
            if (e.KeyCode == System.Windows.Forms.Keys.Enter)
            {
                e.Handled = true;
                System.Windows.Forms.SendKeys.Send("{TAB}");
            }
            if (e.KeyValue == 37 || e.KeyValue == 38 || e.KeyValue == 39 || e.KeyValue == 40)
            {
                try
                {
                	//不加这句话有的时候会报错,未将对象引用到实例
                    if (datagridview.CurrentCell.Value == null)
                    {
                        return;
                    }
                    //将选中的单元格的值赋给textBox控件
                     txtbox.Text = datagridview.CurrentCell.Value.ToString();
                }
                catch
                {
                }
            }
        }
用到一个记录一个 以后慢慢补充
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DotNeter-Hpf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值