WinForm DataGridView 表格控件使用
DataGridView 表格控件使用
1、光标控制
1.1选中代码控制
//让指定行处于选中状态(状态)
dataGridView1.CurrentCell = dataGridView1.Rows[selectIndex].Cells[1];
dataGridView1.CurrentRow.Selected = true;
//定位到指定行(样式)
dataGridView1.ClearSelection();
dataGridView1.Rows[selectIndex].Selected = true;
1.2增加光标定位指定行
//增加光标定位指定行
            dgvMain.CurrentCell = dgvMain.Rows[datas.Count - 1].Cells[1];
            dgvMain.CurrentRow.Selected = true;
1.3、获取选中单元格选中绑定的列名
var selColumnName = dgvMain.CurrentCell.OwningColumn.Name;
3、获取选中单元格或者行绑定单实体类数据
PM_Order_ProductRelateEx selData = dgvMain.CurrentRow?.DataBoundItem as PM_Order_ProductRelateEx;
2、场景需求,勾选单元格,获取所有当前选中数据;
//如果只用这一个时间,会出现第一个单元格修改事件,发现勾选完,光标移走才触发;
 private void dgvMain_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
           
        }
发现勾选完,光标移走才触发;
实现方法,两个事件;
初始化列
增加 FalseValue = 0,TrueValue=1,
dgvMain.Columns.Add(new DataGridViewCheckBoxColumn { HeaderText = " ", DataPropertyName = nameof(MdPrintDataFileNameEx.Check), Name = nameof(MdPrintDataFileNameEx.Check), AutoSizeMode = DataGridViewAutoSizeColumnMode.None, FalseValue = 0,TrueValue=1, Width = 30, ReadOnly = false, Frozen = true }); dgvMain.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "No.", DataPropertyName = nameof(MdPrintDataFileNameEx.No), Name = nameof(MdPrintDataFileNameEx.No), AutoSizeMode = DataGridViewAutoSizeColumnMode.None, Width = 50, ReadOnly = false, Frozen = true });
事件代码
private void dgvMain_CurrentCellDirtyStateChanged(object sender, EventArgs e) { //提交改变,触发dataGridView1_CellValueChanged事件,以便及时获取check的值改变事件 if (dgvMain.IsCurrentCellDirty) { dgvMain.CommitEdit(DataGridViewDataErrorContexts.Commit); } } private void dgvMain_CellValueChanged(object sender, DataGridViewCellEventArgs e) { QueryDtl(); }

 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号