DataGridView控件的用法详解合集 |
您所在的位置:网站首页 › dream的用法合集 › DataGridView控件的用法详解合集 |
1,当前选择的的单元格属性取得、变更 private void button3_Click(object sender, EventArgs e) {
//当前选择的的单元格属性取得、变更 listBox1.Items.Add("当前选择的表格值(代码:dataGridView1.CurrentCell.Value)=" + dataGridView1.CurrentCell.Value); listBox1.Items.Add("当前选择的表格值(代码:dataGridView1.CurrentCell.ColumnIndex)=" + dataGridView1.CurrentCell.ColumnIndex); listBox1.Items.Add("当前选择的表格值(代码:dataGridView1.CurrentCell.RowIndex)=" + dataGridView1.CurrentCell.RowIndex); //设置[1,1]单元格为当前选择的单元格 dataGridView1.CurrentCell = dataGridView1[1,1]; listBox1.Items.Add("当前选择的表格值(代码:dataGridView1.CurrentCell.RowIndex)=" + dataGridView1.CurrentCell); } 运行时,需要先按DataGridViewOpar ,它会创建DataGridView数据视图实例,然后再按DataGridViewOparGather按钮。 2,DataGridView编辑属性 //全部单元格只读 dataGridView1.ReadOnly = true; //指定行列单元格只读 dataGridView1.Columns[1].ReadOnly = true; dataGridView1.Rows[2].ReadOnly = true; dataGridView1[0, 0].ReadOnly = true; //编辑指定单元格 private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { string msg = String.Format("编辑表格 ({0}, {1})", e.ColumnIndex, e.RowIndex); this.Text = msg; }
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { string msg = String.Format("完成编辑 ({0}, {1})", e.ColumnIndex, e.RowIndex); this.Text = msg; } 3,DataGridView禁止用户追加新行 dataGridView1.AllowUserToAddRows = false; 4,判断当前选中行是否为新追加的行 if (dataGridView1.CurrentRow.IsNewRow = true) { MessageBox.Show("你选定的是新行"); } 5,DataGridView设定删除行 //允许用户删除行操作 dataGridView1.AllowUserToDeleteRows = true; //双击DataGridView属性框中事件列表中的以下两个事件,添加代码如下 //提示是否删除指定行数据 private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { DialogResult diaR = MessageBox.Show("是否删除该行?", "确认", MessageBoxButtons.OKCancel,MessageBoxIcon.Question); if (diaR == DialogResult.OK) { e.Cancel = false; } } //提示删除了哪一行数据 private void dataGridView1_UserDeletedRow(object sender, DataGridViewRowEventArgs e) { System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder(); messageBoxCS.AppendFormat("{0} = {1}", "行号为", e.Row); messageBoxCS.AppendLine(); DialogResult diaR = MessageBox.Show("删除了" + messageBoxCS.ToString(), "确认");
} 6,设置不显示指定行,设置删除选定的行或列 //显示指定行或列 dataGridView1.Columns[0].Visible = false; dataGridView1.Rows[0].Visible = false; dataGridView1.ColumnHeadersVisible = false; dataGridView1.RowHeadersVisible = false;
//删除指定行 dataGridView1.Columns.Remove("danwei"); dataGridView1.Columns.RemoveAt(0); dataGridView1.Rows.RemoveAt(0); //删除选定的多行 foreach( DataGridViewRow r in dataGridView1.SelectedRows) { if (r.IsNewRow == false) { dataGridView1.Rows.Remove(r); } } 7,取得选定的行、列、单元格 //选定的单元格 foreach (DataGridViewCell c in dataGridView1.SelectedCells) { string cr = string.Format("{0},{1}", c.ColumnIndex, c.RowIndex); listBox1.Items.Add("选定的单元格位置是:" + cr); } //选定的行/列 foreach (DataGridViewRow c in dataGridView1.SelectedRows) { listBox1.Items.Add("选定的行是:" + c.RowIndex); } foreach (DataGridViewColumn c in dataGridView1.SelectedColumns) { listBox1.Items.Add("选定的列是:" + c.ColumnIndex); } //指定选定单元格 dataGridView1[0, 0].Selected = true; dataGridView1.Rows[0].Selected = true; dataGridView1.Columns[0].Selected = true;
//设置行首和左上角的文字 dataGridView1.Rows[0].HeaderCell.Value = "第1行"; dataGridView1.TopLeftHeaderCell.Value = "左上角"; 8,手动追加列 //手动追加列 dataGridView1.AutoGenerateColumns=false; dataGridView1.DataSource=ds; DataGridViewTextBoxColumn txtCol=new DataGridViewTextBoxColumn(); txtCol.DataPropertyName="danwei"; txtCol.Name="col1"; txtCol.HeaderText="单位"; dataGridView1.Columns.Add(txtCol); 9,单元格内输入值正确性判断 在DataGridView控件的属性处,选择以下事件。 错误文本请求: private void dataGridView1_CellErrorTextNeeded(object sender, DataGridViewCellErrorTextNeededEventArgs e) { if ((dataGridView1.Columns[e.ColumnIndex].Name == "ID") && (dataGridView1.Columns["ID"].ToString()=="")) { dataGridView1.Rows[e.RowIndex].ErrorText="值类型错误"; } } 输入值有效性检查: private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e) { dataGridView1.Rows[e.RowIndex].ErrorText="输入值无效"; } 10,列中显示选择框控件CheckBox //列中显示选择框CheckBox DataGridViewCheckBoxColumn column1= new DataGridViewCheckBoxColumn(); { column1.HeaderText = "选择框"; column1.Name = "checkbox"; column1.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; column1.FlatStyle = FlatStyle.Standard; //显示选择框的三种状态 column1.ThreeState = true; } dataGridView1.Columns.Add(column1); 11,插入新的一列到指定单元格列 //插入新的一列到指定单元格列 dataGridView1.Columns.Insert(3, column1); 12,单元格添加下拉框 //单元格添加下拉框 DataGridViewComboBoxColumn dcombo = new DataGridViewComboBoxColumn(); dcombo.Items.Add("中国"); dcombo.Items.Add("美国"); dcombo.Items.Add("德国"); dcombo.Items.Add("日本"); dcombo.Items.Add("英国"); dcombo.Items.Add("法国"); dcombo.Name = "combo"; //显示的位置列 // dcombo.DisplayIndex = 1; dcombo.HeaderText = "国家"; //绑定数据库的值时使用以下属性 //dcombo.DataPropertyName = "danwei"; dataGridView1.Columns.Add(dcombo);
以上显示的下拉框,选择时需要点击三次,第一次选中单元格,第二次启用编辑,第三次打开下拉框。 如果需要一次点击打开下拉框,可以启用DataGridView的事件CellEnter(); 代码如下: private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { //实现单击显示列表框 if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn && e.RowIndex != -1) { SendKeys.Send("{F4}"); } } 13,单元格显示按钮控件和显示超级链接 同上,只不过使用的类为: DataGridViewButtonColumn dbotton; 相关代码: //显示按钮控件 DataGridViewButtonColumn col=new DataGridViewButtonColumn(); col.Name="Button"; col.UseColumnTextForButtonValue=true; col.Text = "按钮"; dataGridView1.Columns.Add(col); 触发的事件为: private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.Columns[e.ColumnIndex].Name=="Button") { MessageBox.Show("触发了按钮"); } }
超级链接是:DataGridViewLinkColumn 连接代码同上。 单元格列显示图像的是:DataGridViewImageColumn 代码如下: //显示图像 DataGridViewImageColumn dgvI=new DataGridViewImageColumn(); dgvI.Name="Image"; dgvI.ValuesAreIcons=false; dgvI.Image = new Bitmap("c://windows//Blue Lace 16.bmp"); dgvI.ImageLayout=DataGridViewImageCellLayout.Zoom; dgvI.Description="测试的图片"; dataGridView1.Columns.Add(dgvI); dataGridView1["Image", 0].Value = new Bitmap("c://windows//Blue Lace 16.bmp");
等等,用法都是相同的。
转自:http://blog.csdn.net/lanhai96/article/details/5711928 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |