C# 中datagridview中的如何给单元格设置滚动条,是单元格不是整个datagridview

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 中datagridview中的如何给单元格设置滚动条,是单元格不是整个datagridview相关的知识,希望对你有一定的参考价值。

在VS 2019的DataGridView属性设置,属性——“布局”有一个ScrollBars,可以设置不显示滚动条,也可以选择滚动条,有四种滚动条显示方式,其中:Both就是显示横与垂直滚动条,Horizontal只显示横滚动条。(看图片)

参考技术A 你可以设置属性的呀~ 设置一次显示多少条,或者你可以拖动控件缩小范围,只要超出显示范围的数据即可滚动条下拉 参考技术B C#中datagridview控件的每个单元格里都可以是一个控件,这个时候你要想在里面有一个滚动条的话,可以用相关控件来填充,这样就可以了………… 参考技术C 看你单元格设置成什么样子的,若是TextBox的,它应该会自动添加滚动条的追问

我用的是datagridviewtextboxcolumn能实现多行输入,但是输入完后只是单元格变大,滚动条不出现

关于C#中 对于datagridview 单击任意一个单元格,获取那一行数据的语句

string strBookName = dataGridView1.Rows[0].Cells[1].Value.ToString(); 为什么这样写了后无论点击哪行的单元格都是第一行的数据呢? 该怎么改呢?谢谢各位了~

这句代码是写在dataGridView1控件的CellClick事件中的吗?如果是的话,代码如下:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

//被点击的单元格的行索引号在事件的参数e中,e.RowIndex是行索引,e.ColumnIndex是列索引
string strBookName=dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString());
//.......其它代码
追问

恩,谢谢,我刚用过了,但是第二行语句就有问题了
DataRow dr = dbc.Query(string.Format("select * from book where bookname='0'", strBookName)).Tables[0].Rows[0];
Tables[0].Rows[0]就报错了 是怎么回事呢?

追答

dbc.Query(...)是个什么东东?报错,报什么样的错呢?

追问

是我写的数据库访问层 ,在窗体里来调用数据库查询方法Query 报错就是在第二行语句 ”在位置 0 处没有任何行。“

追答

哦。那就是你的这句SQL查询并没有数据返回,返回的表为空,你要访问它的第一行当然会出错。建议在对返回数据进行操作时,先判断一下它是否为空。

追问

是怎么回事呢? 因为我的表里有数据啊 如果用我提问的那一段代码 就能显示出来

追答

请在出错处设断点调试一下。

参考技术A private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

if (string strBookName=dataGridView1.Rows[e.RowIndex].Cells[1].Value!=null)

string strBookName=dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString());


参考技术B Rows[0]当然是第一行 SelectedRow 获取对 GridViewRow 对象的引用,该对象表示控件中的选中行。
SelectedValue 获取 GridView 控件中选中行的数据键值。
具体可以去msdn的api看追问

谢谢~ 我用了selectedrows 可运行的时候报错了,
string strBookName = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
索引超出范围。必须为非负值并小于集合大小。 怎么解决呢?

追答

首先你得在前台启用 启用选定内容 然后在服务端事件那里选择SelectedIndexChanging事件,双击会在后台出现代码,然后在里面获取,不然程序不知道你选的是哪行,获取就这么写
string s = GridView1.SelectedRow.Cells[1].Text; cells里是第几个单元格

追问

没找到SelectedIndexChanging
T_T 只有SelectionChanged

追答

SelectionChanged就可以,这两个只是选择前后和执行,不知道你具体什么功能,单纯要单元格数据的话取出后放到全局变量就可以

以上是关于C# 中datagridview中的如何给单元格设置滚动条,是单元格不是整个datagridview的主要内容,如果未能解决你的问题,请参考以下文章

将 DataGridView 单元格 BackColor 传递给变量以供以后在 c# 中使用

如何在 c# 中禁用可点击的 datagridview 中的空单元格

C# 如何使datagridview中的单元格处于可编辑

c#中datagridview中datasource反复赋值没有变化?

c#中datagridview中能不能给指定的单元格赋值并让其在单元格中显示出来?

如何将值收集到数组中并将集合传递给 C# 中的 datagridview?