gpt4 book ai didi

c# - 将索引添加到 DataGridView header

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:11 25 4
gpt4 key购买 nike

我正在开发一个 VSPackage(Visual Studio 2010 的扩展),并且我有一个托管 DataGridView 控件的工具窗口。我有一个非常大的数据集(例如,大小为 16384 x 16384 的二维数组),我通过 VirtualMode 更新数据。

我想为行标题单元格和列标题单元格添加索引,所以我尝试了:

  1. 通过网格方法自动调整大小

    grid.AutoResizeRowHeadersWidth(
    DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders);
  2. 遍历每一行

    foreach (DataGridViewRow row in grid.Rows) {
    row.HeaderCell.Value = (row.Index + 1).ToString();
    }
  3. 订阅 RowsAdded/OnPaint 并更新那里的值。

但是,所有这些方法都 super 慢!

它们显着降低了 DGV 的渲染效果(在每种方法之后渲染 View 大约需要 5 秒或更长时间,甚至更糟)。

您建议改为做什么?

最佳答案

我确实对该问题进行了初步研究,您已经列出了所有典型的解决方案,不幸的是,设置 2.5 亿个单元格值需要一些时间。

我唯一没有看到你提到的是伪造标题单元格(即第一列和第一行的灰色背景)并用源数据填充它们。由于用像素值填充 DataGridView 单元格值,一个想法是在您加载的每个图像的左侧和顶部附加 1 个像素 strip 。

我仍然认为解决方案需要更好的设计。以下是对您问题的间接回答。

制作一个带有放大功能的图片对话框。当用户/开发人员放大到像素级别时,向他们显示 RGB 值。这是 an excellend Drawing Tool example用基于 MFC CLiDraw 的 C# 编写,并有一个示例向您展示如何放大。

另一个想法是 EyeDropper 颜色选择器,您可以从以下位置获得:http://www.codeproject.com/Articles/36540/Adobe-Eyedropper-Control

关于c# - 将索引添加到 DataGridView header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20829570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com