Winfrom控件之DataGridView
来源:互联网 发布:javascript语言精粹pdf 编辑:程序博客网 时间:2024/05/16 12:48
- 控件名:DataGridView
- CS框架:WinFrom
- 编程语言:C#
一.常用属性
1.布局
ReadOnly(是否可编辑)
AllowUserToAddRows(隐藏底部空行)
RowsHeadersVisible(隐藏首列)
DataSource(绑定数据源)
AutoGenerateColumns(绑定数据源后,不自动生成列)
AutoSizeColumnsMode(自动列宽,FILL可解决滑条遮挡问题,但需要第一列frozen值为true。FILL模式下,可通过Columns列权重属性FILLWeight来控制列宽度自动化占比)
AutoSizeRowsMode(自动行高)
SelectionMode (选中模式,FullRowSelect为选中整行)
2.添加行
dataGridView_zdfb.Rows.Clear();//清空所有行
dataGridView_zdfb.Rows.Add();//添加行
dataGridView_zdfb.Rows[行号].Cells[列序号].value=值 //赋值行某列文本值
((DataGridViewCheckBoxCell)dataGridView_zdfb.Rows[行号].Cells[列序号]).Value//赋值下拉框值
3.取值
3.0 通用
dataGridView.CurrentRow.Index(获取选中索引)
dataGridView.CurrentCell.Value(获取选中单元格)
3.1 列类型:Textbox
dataGridView.Rows[行号].Cells[列号].Value.ToString()(取某行某列值)
3.2 列类型:CheckBox
取某行某列的值
(DataGridViewCheckBoxCell)dataGridView.Rows[行号].Cells[列号]).(EditedFormattedValue&FormattedValue)
取选中单元格的值
((DataGridViewCheckBoxCell)dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[列号]).EditedFormattedValue.Tostring()
在这里,Check选中值分为两种属性。
EditedFormattedValue 编辑状态check值
FormattedValue 非编辑状态check值
3.3 列类型:ComBobox
dataGridView.Rows[行号].Cells[列号].EditedFormattedValue.ToString()
4.方案
4.1单向绑定。
该方法使用DataSource绑定数据模型,程序可以通过操作数据模型(改变变量)来控制视图(控件同步改变数据),并且DataSource包含相应事件可供功能拓展。
4.2双向绑定
如需实现双向绑定,在视图修改后(控件值修改后)数据模型(变量)也发生变化,只需在CellEndEdit事件赋值即可。
private void dataGridView_CellEndEdit(object sender,DataGridViewCellEventArgs e) { DataTable变量名.Rows[e.ColumnIndex][e.RowIndex] = dataGridView.CurrentCell.Value.ToString(); }
5.多类型列交互
在我们使用中,一个DataGridView可能包含多种样式的列,往往列之间需要一些交互,举个栗子。
首先,我们初始设置名称和控件两列的ReadOnly为True,处于不可编辑状态。
当自定义列勾选时,名称和控件列ReadOnly为False可编辑,允许用户输入。
当自定义列不勾选时,自动清空名称和控件列内容,同时关闭两列可编辑状态。
在这里试了很多属性,目前发现CellContentClick的触发是最有即时性效果的,具体操作代码如下。
private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { if(((DataGridViewCheckBoxCell)dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[1]).EditedFormattedValue.ToString() == "False")//如果自定义列未选中 { //清空后面两列的内容 dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[2].Value = ""; dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[3].Value = ""; //关闭后面两列的编辑状态 dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[2].ReadOnly = true; dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[3].ReadOnly = true; } else { //开启后面两列的编辑状态 dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[2].ReadOnly = false; dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[3].ReadOnly = false; }}
- Winfrom控件之DataGridView
- winfrom DataGridView 列表操作
- WINFROM DataGridView导出Excel
- 在winfrom中,如何将数据库的数据显示在datagridview控件上。
- c# winFrom中 dataGridView控件 在列表内直接编辑数据,然后保存到数据库
- Winform常用控件之datagridview
- c#|winfrom|DataGridView的使用
- winfrom 为datagridview 添加行号
- Winfrom DataGridView grvData_CellContentClick的应用
- Winform控件之DataGridView数据控件(一)
- 使用WinFrom控件-TreeView
- winfrom日期控件
- WinFrom 控件 属性 小结
- winfrom tag控件属性
- Winfrom控件属性、布局
- c#开发的一个在winfrom下可编辑的table控件,可代替datagridview部分功能
- Sql Server中写查询表存储过程,并在winfrom中的dataGridView控件中显示表内容
- C#之DataGridView控件的灵活运用
- redis学习系列(七)--redis-database
- 日期
- webSocket实现
- plsql 通过修改配置文件的方式实现数据库的连接
- 普元EOS Platform 的nui的日框期怎么设置成中文,找不到显示中文的属性。
- Winfrom控件之DataGridView
- Android如何判断NavigationBar是否显示(获取屏幕真实的高度)
- 金融商品与普通实物商品的区别
- 洛谷【p1122】最大子树和
- Swing中Timer定时器的作用
- Kotlinで初め
- JQuery——Ajax之XMLHTTPRequest对象
- android 友盟QQ分享
- java mysql 高性能批量处理 设置rewriteBatchedStatements