2017-09-11 3 views
0

J'ai un datagridview qui a 2 colonnes, l'un est le nom du fichier et l'autre est une colonne qui a une image qui pourrait avoir un rouge ou vert image.Comment puis-je savoir quelle image est affichée dans la colonne datagridview C# .net

Je veux savoir comment pourrais-je obtenir la valeur de savoir quelle image est affichée dans la colonne datagridview comme suit:

Note: Par défaut est rouge, mais il passe au vert une fois que vous faites quelque chose avec cette fichier.

Image with the red image

Image with the green image

Comment j'ajouté ces images était une liste d'images comme suit:

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"))); 

et sont chargés au datagridview comme suit:

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] }); 
    } 
} 

Eh bien, la question est exactement: comment savoir quand la colonne a une image rouge ou verte?

merci.

+0

Je ne peux pas voir comment une image rouge ou verte est décidée en premier lieu? – Equalsk

+3

Conservez une troisième colonne [cachée] qui stocke les valeurs dans les cercles _red_ ou _green_, puis utilisez-la pour tout ce que vous devez faire avec. par exemple, pour le magasin rouge 1 dans la troisième colonne et pour le magasin vert 0. Faites-le selon la même logique que vous affichez les cercles rouges ou verts –

+1

Ou gardez un drapeau dans l'étiquette de la cellule – TaW

Répondre

0

Ces images vertes et rouges représentent très probablement une valeur booléenne. Vous devriez travailler avec cette valeur booléenne, n'essayant pas de l'inverser via l'image!

À moins que vous n'effectuiez un raclage/une atomisation d'écran, vous ne devriez pas vous préoccuper de l'image affichée. C'est un détail mineur du côté de l'affichage. Et si vous effectuez un grattage d'écran, la question doit être remaniée en conséquence.

Il serait utile d'une tonne si vous nous avez dit que vous utilisez .NET Display technology. Même la façon dont vous affichez un booléen comme un iamge peut énormément varier entre ceux-ci, et la réponse aussi.

+0

Oh mon garçon. Cette réponse est sur un niveau plus élevé de awesomeness :) veuillez lire à nouveau la question et ensuite les commentaires ci-dessous. Ciao:] –

+0

@Nobody: S'il vous plaît montrez-moi où la technologie d'affichage est spécifié. Parce que dans WPF/UWP je peux le faire sans une colonne cachée: je change simplement la façon dont les booléens sont affichés à ** ce point ** via un type de cible taral, un tempalte de ligne, un convertisseur ou un tigger. – Christopher