【问题标题】:How could I know which image is displayed in datagridview column C# .net我怎么知道哪个图像显示在 datagridview 列 C# .net
【发布时间】:2017-09-11 15:30:02
【问题描述】:

我有一个数据网格视图,它有 2 列,一列是文件名,另一列是包含可能具有红色或绿色图像的图像的列。

我想知道如何获取值以知道 datagridview 列中显示的图像如下:

注意:默认情况下是红色的,但是一旦你对该文件进行操作,它就会变为绿色。

我添加这些图像的方法是使用如下的图像列表:

ImageList icons = new ImageList();
icons.Images.Add(Image.FromFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
    "..\\..\\images", "red.png")));
icons.Images.Add(Image.FromFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
    "..\\..\\images", "green.png")));

并按如下方式加载到datagridview:

foreach (string file in Directory.GetFiles(
    Path.Combine(DataBaseConfiguration.WPRPath, "CR" + _number)))
{
    if (!file.Contains("~$"))
    {
        dgvWprFiles.Rows.Add(new object[] { Path.GetFileName(file), icons.Images[0] });
    }
}

好吧,确切的问题是:如何知道该列何时有红色或绿色图像?

谢谢。

【问题讨论】:

  • 我看不到红色或绿色图像是如何决定的?
  • 保留第三列[hidden],它会根据 redgreen 圆圈存储值,然后将其用于您需要做的任何事情.例如,对于第三列中的红色商店 1 和绿色商店 0。按照与显示红色或绿色圆圈相同的逻辑执行此操作
  • 或者在单元格的标签中保留一个标志
  • @TaW Tag 需要强制转换。检索值。但是你这也是可能的
  • @Equalsk,默认为红色,并在icons.Images[0] 中指定,它会根据您的审查而改变,但@nobody 的答案听起来很完美!这样我就可以为图像创造价值。

标签: c# image winforms datagridview datacolumn


【解决方案1】:

那些绿色和红色的图像最有可能代表一个布尔值。您应该使用该布尔值,而不是尝试通过图像对其进行逆向工程!

除非您正在执行屏幕抓取/原子化,否则您不应该关心显示的图像。这是显示方面的一个小细节。如果你正在做屏幕抓取,那么问题应该相应地重新编写。

如果您告诉我们.NET Display technology 您正在使用,那将有很大帮助。即使您将布尔值显示为 iamge 的方式在它们之间也会有很大差异,答案也是如此。

【讨论】:

  • 天啊。这个答案有点令人敬畏:) 请再次阅读该问题,然后阅读其下方的 cmets。 Ciao :]
  • @Nobody:请告诉我在哪里指定了显示技术。因为在 WPF/UWP 中,我可以在没有隐藏列的情况下做到这一点:我只需通过针对模板、行模板、转换器或跳跳虎的类型更改布尔值在 此时的显示方式。
猜你喜欢
  • 1970-01-01
  • 2018-03-11
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多