做Winform开发,对需求的实习是从一个DatagridView中选择数据,并复制到另一个DatagridView 中,之前BS开发做过类似效果,使用DataGridView肯定没问题。
将DataGridView1中的数据复制到DataGridView2中;
设置DataGridView1的第一列为复选框,DataGridView1的两个事件,协作实现我们想要的效果,
dataGridView1_CurrentCellDirtyStateChanged,
dataGridView1_CellValueChanged。
<span style="font-family:SimSun;font-size:18px;"> private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
if (dataGridView1.IsCurrentCellDirty)
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); //提交
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{</span>
<span style="font-family:SimSun;font-size:18px;"> if (e.RowIndex >= 0 && e.RowIndex != -1 && !dataGridView1.Rows[e.RowIndex].IsNewRow) //行和列,并且行中存在数据;
if (e.ColumnIndex == 0)
if ((bool)this.dataGridView1[e.ColumnIndex, e.RowIndex].Value == true)
dataGridView2.Rows.Add(); //现在要复制到的DataGridView中添加一个行,然后下面循环列,进行赋值;
for (int j = 0; j < dataGridView1.Rows[e.RowIndex].Cells.Count; j++)
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[j].Value = dataGridView1.Rows[e.RowIndex].Cells[j].Value;
}</span>
不断地出现新的需求,不断地尝试新的实现方式,实践越多,越成熟,但是开发周期有限,一切还是应该以交付产品为重要紧急的事情。
做Winform开发,对需求的实习是从一个DatagridView中选择数据,并复制到另一个DatagridView 中,之前BS开发做过类似效果,使用DataGridView肯定没问题。 将DataGridView1中的数据复制到DataGridView2中;设置DataGridView1的第一列为复选框,DataGridView1的两个事件,协作实现我们想要的效果,dataGridV
private void button1_Click(object sender, EventArgs e)
if (this.
dataGridView
1.RowCount == 0)
return;
DataRowView currentQualiRowView = this.
dataGridView
1.CurrentRow.DataBoundItem as DataRowView;
今天讲的是如何在
dataGridView
1中用鼠标选中一行
数据
,然后将这行
数据
传到
dataGridView
2中进行显示。
首先我在
winform
窗体中拉了三个panel,两个button,两个
dataGridView
,来实现这个小项目。设计完如下图所示:
程序运行之后实现的效果是如下图所示:
点击向右的箭头就将
dataGridView
1中的
数据
转移
到
dataGridView
2中。
点击向左的箭头就将
dataGridView
2中的
数据
转移
到
dataGridView
1中。
实现的代码如下所示:
privat
public static frmStudentDetail frmsd;
//主窗体双击单元格的事件
private void dgvStudent_CellContentDoubleClick(object sender,
DataGridView
CellEventArgs e)//双击单元格的事件
//通过Serverice类中的方法得到学生类
Student objectStudent = StudentService.GetStudentInfo(Convert.T
右侧输入学生信息点击新增,将
数据
增加到
数据
库,并且加载到
datagridview
中,点击选择某条
数据
修改,将选择的
数据
加载到右侧的编辑框内,修改后点击修改即可,也可直接删除。
public partial class Form1 : Form
官方文档
DataGridView
控件提供了一种强大而灵活的以表格形式显示
数据
的方式。用户可以使用
DataGridView
控件来显示少量
数据
的只读视图,也可以对其进行缩放以显示特大
数据
集的可编辑视图。扩展
DataGridView
控件有很多方式
例如可以采用编程方式指定自己的排序算法来创建自己的单元格类型,通过选择一些属性,可以轻松的自定义DataDridView控件的外观:可以将许多类型的
数据
存储区
情景:在
winform
的
dataGridView
中
一个
Column中显示两个按钮,本文将提及以下三种形式。
在一列中使用两个文字形式的按钮,得到的结果如下图的“Action”列。
在一列中显示两张按钮图片,得到的结果如下图的“Order First”列。
将按钮图标放在相邻的两列,合并标题,得到的结果如下图的“Order”列。
1.在一列中使用两个文字形式的按钮
最后...
/// 设置编辑状态下按回车键,跳到指定单元格.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
if (keyData == Keys.En
您可以使用
DataGridView
的DataSource属性进行
数据
绑定,然后通过设置
DataGridView
的AutoGenerateColumns属性为false,手动添加
DataGridView
Column,最后将每行
DataGridView
Row的DataBoundItem属性设置为相应的
数据
对象,实现一行绑定
一个
数据
的效果。
具体的实现步骤如下:
1. 设置
DataGridView
的DataSource属性为
数据
源。
2. 设置
DataGridView
的AutoGenerateColumns属性为false,手动添加
DataGridView
Column。
3. 在
DataGridView
的DataBindingComplete事件中,遍历每行
DataGridView
Row,并将每行
DataGridView
Row的DataBoundItem属性设置为相应的
数据
对象。
示例代码如下:
// 假设
数据
源为List<Person>类型,Person类有Name和Age属性
List<Person> dataSource = GetDataSource();
dataGridView
1.DataSource = dataSource;
dataGridView
1.AutoGenerateColumns = false;
dataGridView
1.Columns.Add(new
DataGridView
TextBoxColumn() { DataPropertyName = "Name", HeaderText = "姓名" });
dataGridView
1.Columns.Add(new
DataGridView
TextBoxColumn() { DataPropertyName = "Age", HeaderText = "年龄" });
dataGridView
1.DataBindingComplete += (sender, e) =>
foreach (
DataGridView
Row row in
dataGridView
1.Rows)
row.DataBoundItem = dataSource[row.Index];
注意,上述示例代码中的GetDataSource()方法需要根据实际情况替换为获取
数据
源的方法。