Auteur de questions
DataBoolColumn

Question
-
bonjour,
Voici un code pour des boolColumn:
myDataView =
dataBase.myDataTable.DefaultView; this.kryptonDataGridView1.DataSource = myDataView; DataGridBoolColumn check = new DataGridBoolColumn("S‚lectionner", System.Type.GetType("System.Boolean")); this.kryptonDataGridView1.Columns.Add(check); this.kryptonDataGridView1.Invalidate();L'erreur:
Error 5 Argument '1': cannot convert from 'string' to 'System.ComponentModel.PropertyDescriptor'
sur le "Sélectionner"
Error 6 Argument '2': cannot convert from 'System.Type' to 'bool'
sur
System.
Type.GetType("System.Boolean")
Error 7 The best overloaded method match for 'System.Windows.Forms.DataGridViewColumnCollection.Add(System.Windows.Forms.DataGridViewColumn)' has some invalid arguments
ligne:
this.kryptonDataGridView1.Columns.Add(check);
et sur la meme ligne:
Error 8 Argument '1': cannot convert from 'System.Windows.Forms.DataGridBoolColumn' to 'System.Windows.Forms.DataGridViewColumn'
le (check);
Voilà. Autre question:
Lorsque ceci sera réglé, et que le client cliquera sur "Sauvegarder", la boite de dialog doit se fermé, et dans la boite principal, le txtBoxCorrespondant, ajouté, muni de split(',') les données checké.
Comment faire?
Merci
Toutes les réponses
-
Bonjour,
Normal que tu aies ce genre d'erreur tu n'utilises pas le bon objet.
Voici la doc de l'objet que tu utilises:
http://msdn.microsoft.com/fr-fr/library/x0443t37.aspx
Mais ce n'est pas le bon objet qui t'intéresse de toute façon si je comprends ce que tu veux. Il vaut mieux utiliser un
DataGridViewColumn comme ci-dessous.
Tu as un bon exemple ici:
dans ton cas cela doit donner:
Code SnippetDataGridViewColumn column = new DataGridViewCheckBoxColumn();
//column.DataPropertyName = "Map on a datatable field if available";
column.Name = "Sélectionner";
this.kryptonDataGridView1.Columns.Add(column);Vérifie que tout va bien et pose ta question suivante dans un autre fil (en première réponse il faudra que tu récupères toutes les rows et que tu testes celles qui ont la valeur à true sur lequelles faire ton action un peu comme ci-dessous)
Code SnippetString contenu="";
foreach (DataGridViewRow row in kryptonDataGridView1.Rows)
{
if (row.Cells["Sélectionner"].Value == true)
{
contenu += row.Cells["MaDonnée"].Value + ",";
}
} -
Salut,
merci de ta réponse, la colonne s'ajoute, mais elle ne se check pas, pourquoi?
code:
cGestObjet.requestOBject();
myDataView = dataBase.myDataTable.DefaultView;
this.kryptonDataGridView1.DataSource = myDataView;
DataGridViewCheckBoxColumn check = new DataGridViewCheckBoxColumn();
check.DataPropertyName = "S‚lectionner";
check.Name = "S‚lectionner";
this.kryptonDataGridView1.Columns.Add(check);
this.kryptonDataGridView1.Invalidate();
-
Je pense que c'est pour la même raison qu'ici:
http://forums.microsoft.com/MSDN-FR/ShowPost.aspx?PostID=3798288&SiteID=12
Il faut mettre la propriété readonly de ton gridview à false pour que ce soit éditable!