首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >DataGridView不渲染随机单元

DataGridView不渲染随机单元
EN

Stack Overflow用户
提问于 2013-05-21 16:38:57
回答 1查看 378关注 0票数 0

我有一个datagridview,我使用dgv.DataSource = table从数据源填充它。然后,我使用一个单元格格式化事件来根据值更改datagridview中特定单元格的颜色。我面临的问题是,当查看某些pc上的数据时,一些随机单元格将显示为白色,没有数据。我用来设置颜色的代码如下,然而,不仅仅是我设置了自定义颜色的单元格显示为白色:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    private void dgvRaw_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (e != null)
        {
            DataGridView dgv = (DataGridView)sender;

            if (dFlags.ContainsKey(dgv.Columns[e.ColumnIndex].Name))
            {
                e.CellStyle.ForeColor = Color.Black;
                // If pass set green else set red 
                if (e.Value != null)
                {
                    if (e.Value.ToString() == "0")
                        e.CellStyle.BackColor = System.Drawing.Color.Green;
                    else
                        e.CellStyle.BackColor = System.Drawing.Color.Red;
                }
                else
                    e.CellStyle.BackColor = System.Drawing.Color.Orange;
            }
        }
    }

我真的不知道为什么会发生这种情况,或者是因为计算机不能处理大型网格视图。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-23 07:03:36

事实证明,datagridview的问题是默认情况下没有启用双缓冲。我使用一个自定义的datagridview类来启用双缓冲,从那时起我就没有遇到过任何问题,我怀疑这是因为有一个非常大的数据集,它在渲染整个区域时遇到了问题,而在低端pcs上,它只是放弃了。我已经包含了下面的类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /// <summary>
    /// Custom datagridview to enable double buffering
    /// </summary>
    public class MyDataGridView : DataGridView
    {
        public MyDataGridView()
        {
            DoubleBuffered = true;
        }
    }

我不能接受这段代码的功劳,因为我在Stack Overflow上的另一个源码上找到了它,但是它是一个不同的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16675155

复制
相关文章
DataGridView 中合并单元格
Windows Forms DataGridView 没有提供合并单元格的功能,要实现合并单元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.DrawString 自己来“画”。 下面的代码可以对DataGridView第1列内容相同的单元格进行合并:         private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)  
跟着阿笨一起玩NET
2018/09/18
5.1K0
C#实例:datagridview单元格合并
这是替C#微信交流群群友做的一个小实例,目的就是在datagridview选择对应行以后,点击button后获取对应行的ip,并执行相应的操作,其实我觉得这样的话button没必要非放置到datagridview里面的!但是为了满足群友的需求,还是这么做了。
zls365
2020/08/19
5K0
C#实例:datagridview单元格合并
WinForm中DataGridView验证单元格输入的是数字
     事件:DataGridView验证单元格输入的是数字,DataGridView源数据是从数据库读取的。
跟着阿笨一起玩NET
2018/09/20
2.3K0
WinForm中DataGridView验证单元格输入的是数字
Vue数据不渲染问题
使用vue开发项目的时候,几乎都会遇到一个问题,数据改变了,但是页面没有渲染。这种情况下一般都是数组和json才会发生。
wade
2020/04/24
1.6K0
是的,股价不遵循随机游走!
《非随机漫步华尔街》是由Lo和MacKinlay撰写的一本在学术上具有挑战性的教科书:
量化投资与机器学习微信公众号
2019/11/12
2.1K0
是的,股价不遵循随机游走!
基于迭代单元的不恢复余数开方器基于迭代单元的不恢复余数开方器
基于迭代单元的不恢复余数开方器 基本算法 与恢复余数开方器类似,不恢复余数开方器也是通过迭代完成运算的,基本算法的伪代码如下所示 Ra = 被开方数(位宽2W) Re = 余数(初值为0) Dout = 0 for i in W -> 0 { if(Re > 0) { Re = {Re,Ra[2i - 1],Ra[2i]} - {Dout,2'b01} } else { Re = {Re,Ra[2i - 1],Ra[2i]} + {Dout,2'b11} } Dout = {
月见樽
2018/04/27
1.1K0
C#—— DataGridView控件的各种操作总结(单元格操作,属性设置)
Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex); // 取得当前单元格的行 Index Console.WriteLine(DataGridView1.CurrentCell.RowIndex);
vv彭
2021/03/07
9.7K0
DataGridView使用小结
1).右键点击行时选中行,并弹出操作菜单 1). 添加一个快捷菜单contextMenuStrip1; 2). 给dataGridView1的CellMouseDown事件添加处理程序: private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)         {             if (e.Button == MouseButtons.Right)             {
跟着阿笨一起玩NET
2018/09/18
2.3K0
C# 鼠标悬停在datagridview的某单元格,显示悬浮框效果
本文转载:http://www.cnblogs.com/bribe/archive/2013/10/08/3357345.html
跟着阿笨一起玩NET
2018/09/19
1.9K0
C# 鼠标悬停在datagridview的某单元格,显示悬浮框效果
DataGridView控件使用大全
DataGridView控件使用大全:http://www.haogongju.net/art/847949
跟着阿笨一起玩NET
2018/09/18
2K0
DataGridView控件使用大全
datagridview显示行号
另一种也是在这个事件下面下面 用了个for循环来做index+1的单元格赋值,效率太慢了。
跟着阿笨一起玩NET
2018/09/18
1.9K0
年轻时,我不写单元测试
当我们被提出这些bug的时候,我们是二脸懵逼的,因为这不符合一个程序员的预期!!! 那么我们如何能够避免以上的问题,从而将经历投入到更多的开发(写bug)中去呢? 笔者在这里试着归纳了一下解决问题的办法
2014v
2019/11/20
8760
C#学习笔记——DataGridView功能总结
5.右键点击行时选中行,并弹出操作菜单 ①. 添加一个快捷菜单contextMenuStrip1; ②. 给dataGridView1的CellMouseDown事件添加处理程序:
vv彭
2021/05/07
3.1K0
C#学习笔记——DataGridView功能总结
c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex); // 取得当前单元格的行 Index Console.WriteLine(DataGridView1.CurrentCell.RowIndex);
全栈程序员站长
2022/07/13
4.4K0
WinForm 控件 DataGridView 常用操作
在窗体load事件里面设置表格dataGridView的AutoGenerateColumns为 false
SpringSun
2021/10/18
1.9K0
【转】基于C#的WinForm中DataGridView控件操作汇总
Console.WriteLine(DataGridView1.CurrentCell.Value);
静谧的小码农
2019/06/16
5.3K0
C# winform DataGridView 常见属性
C# winform DataGridView 属性说明 ① 取得或者修改当前单元格的内容 ② 设定单元格只读 ③ 不显示最下面的新行 ④ 判断新增行 ⑤ 行的用户删除操作的自定义 ⑥ 行、列的隐藏和删除 ⑦ 禁止列或者行的Resize ⑧ 列宽和行高以及列头的高度和行头的宽度的自动调整 ⑨ 冻结列或行 ⑩ 列顺序的调整 ⑪ 行头列头的单元格 ⑫ 剪切板的操作 ⑬ 单元格的ToolTip的设置 ⑭ 右键菜单(ContextMenuStrip)的设置 ⑮ 单元格的边框、 网格线样式的设定 ⑯ 单元格表示值的设定 ⑰ 用户输入时,单元格输入值的设定 ⑱ 设定新加行的默认值
全栈程序员站长
2022/09/07
3.9K0
DataGridView 密码列(显示为*号)的设置
曾经为在DataGridView中设置密码列(显示为*号)而发愁,如何把Windows 窗体 DataGridView 的某一列的数据显示为“*”。
Java架构师必看
2021/03/22
2.3K0
WinForm 为 DataGridViewCell 绑定 DataGridView
先上效果图。 对外提供一个 public 的方法: // 正常 Type1 是 JSON 的数据集或者 BSON 的数据集 public void FillDataGridView(Type1 d
Venyo
2018/03/15
1.1K0
WinForm 为 DataGridViewCell 绑定 DataGridView
DataGridView列自适应宽度
来源:http://www.cnblogs.com/wolf-sun/p/3480104.html
跟着阿笨一起玩NET
2018/09/20
1.8K0
DataGridView列自适应宽度

相似问题

DataGridView单元

11

DataGridView绘图\渲染速度较慢

47

更改单元格BackColor后DataGridView不刷新

139

DataGridView错误?单元格样式InEdit不更新

13

DataGridView单元类型

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文