通常会设置的DataGridView的属性:
AllowUserToAddRows - False
指示是否向用户显示用于添加行的选项,列标题下面的一行空行将消失。一般让其消失。
AllowUserToDeleteRows - False
指示是否允许用户从DataGridView删除行。一般不允许。
AllowUserToOrderColumns - False
指示是否启用手动列重新放置。一般不允许。
AllowUserToResizeColumns - True
指示用户是否可以调整列的大小。一般允许。
AllowUserToResizeRows - False
指示用户是否可以调整行的大小。一般不允许。
AutoSizeColumnsMode - Fill
确定可见列的自动调整大小模式。
BorderStyle - None/FixedSingle/Fixed3D
DataGridView的边框样式。
GridColor - 任意
分隔DataGridView单元格的网格线的颜色。
MultiSelect - False
指示用户一次是否可以选择DataGridView的多个单元格、行或列。
ReadOnly - True
指示用户是否可以编辑DataGridView控件的单元格。
RowHeadersVisible - False
指示是否显示包含行标题的列。
SelectionMode - FullRowSelected
指示如何选择DataGridView的单元格。
----------------------------------------------------------------
如何获取用户所选的那个单元格中的内容?
string oop = this.DataGridView.SelectedRows[0].Cells[0].Value.ToString().Trim();
上面语句的意思是将用户所选的第一行中第一个单元格中的值转换为String类型并去处两边的空格赋值给oop字符串。
----------------------------------------------------------------
如何获取用户所选的那行中我想得到的单元格中的内容?
string loginID = this.DataGridView.Rows[e.RowIndex].Cells["LoginID"].Value.ToString().Trim();
e.RowIndex - 获取触发此单击事件时用户所选行的下标
上面的语句写在DataGridView控件的单击事件中,双击事件也可以,LoginID是DataGridView控件中一列的列名。作用就是获取用户选中那一行的表示LoginID的内容。
----------------------------------------------------------------
如何确定用户是否选择了DataGridView中的一行数据,而没有点到别处呢?
if (this.DataGridView.SelectedRows.Count != 0) {}
----------------------------------------------------------------
如何将用户所选的那行数据整体获取出来?
前提是DataGridView的数据源是一个实体类集合,这样DataGridView中的每行数据才都是一个实体类对象,将DataGridView中的一行数据整体获取出来才有意义。
Student student = this.DataGridView.SelectedRows[0].DataBoundItem as Student;
一般上面的语句都写在DataGridView的单击或双击事件中。
----------------------------------------------------------------
弄不好在DataGridView中会显示多余的列,如何避免这种问题呢?
在DataGridView控件的Load事件的第一行写上这样的代码:
private void frmMain_Load(object sender, EventArgs e) {
this.dataGridView1.AutoGenerateColumns = false; //让它不自己产生多余的列
}
----------------------------------------------------------------
DataGridView 控件的 Columns 属性中 (Name) 属性是为此控件的列命名,可以输入任何名字;DataPropertyName 是绑定于 DataSet 中表的列,必须与你要调用的表的列的名字相同;HeaderText 是运行时显示在 DataGridView 中每列的标题。