2010-12-07 17 views
0

J'ai un formulaire avec un contrôle datagridview dessus.Icônes dans DataGridView

La vue de données de données est liée à un DataView qui est à son tour rempli à partir d'un DataTable. L'application fonctionne très bien dans son état actuel, mais maintenant je veux le modifier afin d'introduire une nouvelle colonne dans le datagrridview. La nouvelle colonne doit être une icône.

Je suppose que d'une façon ou d'une autre je dois créer une nouvelle colonne pour l'icône dans le DataTable afin qu'il puisse passer à la vue de données. Toute aide sur comment je peux y parvenir.

version réduite du code est

private DataTable _tableDT = new DataTable("dt"); 
private DataView _viewDT = new DataView(); 

_viewDT.Table = _tableDT; 
_tableDT.Columns.Add("Name", typeof(string)); 
_tableDT.Columns.Add("Desc", typeof(string)); 

// populate data table 
_tableDT.Rows.Add(.....) 

dataGridView1.DataSource = _viewDT; 

En outre, comme une autre question. Une colonne peut contenir à la fois une icône et du texte. (c'est-à-dire idéalement que la nouvelle colonne aurait une icône sur le côté gauche suivie d'un texte).

Répondre

0

Ayez un peu de lecture de ceci. C'est en VB mais c'est assez facile à interpréter.

http://arsalantamiz.blogspot.com/2008/04/how-to-display-row-icon-in-datagridview.html

Sinon, si vous lisez l'image d'une base de données, vous pouvez simplement obtenir le DataGridView à faire tout le travail dur, simplement en ajoutant une nouvelle colonne DataGridViewImageColumn. En remplaçant l'événement CellPainting, vous pouvez spécifier l'image en fonction des données de ligne.

http://social.msdn.microsoft.com/forums/en-US/Vsexpressvcs/thread/4f3c8d15-f1f5-4d62-9f26-8a04f683a210

Hope this helps, Tom :)

+0

Donc actuellement je lie une datatable à datagridview.source. Ainsi, le contrôle datatable contrôle quelles colonnes sont ajoutées à la vue de données. Si je comprends bien que vous approchez correctement je ne serais pas capable d'utiliser cette méthode car je devrais ajouter explicitement une colonne non liée. –

+0

ahh - ne pas tenir compte du dernier commentaire. Je semble faire des progrès maintenant ... –

0

Vous pouvez prendre this tutoriel de Microsoft et de mettre votre UserControl comme dans DataGridViewUserControlColumn.