ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008
-
18 août 2006 à 12:03
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008
-
20 août 2006 à 11:02
Bonjour a tous,
Dans le but d'un projet je dois creer ujn usercontrol contenant un datagridview dans le but d'ajouter des fonctionnalité a celui-ci.
Mon soucis est que dans cet objet je dois pouvoir definir la source de données du datagrid depuis l'application qui l'utilisera (comme si j'inserai un datagridview dans mon appli).
Le soucis c'est que je ne trouve pas comment declarer un DataSource. Voici mon code qui vous aidera a comprendre ce que je veux faire :
[Category("Source données"), Browsable(true), Description("Permet de definir la source de données du datagrid")]
public /* declaration du datasource*/ monDataSource
{
get
{
return this.dataGridView1.DataSource ;
}
set
{
this.dataGridView1.DataSource = value ;
}
}
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 août 2006 à 18:51
Ha oui effectivement, je suis parti du principe que c'était un Control complexe qui contenait, entre autre, un DataGridView.
C'est évident que si tu veux juste spécialisé ton DataGridView, il faut directement dérivé de cette classe et non pas de UserControl !
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008 18 août 2006 à 12:22
L'ideal en fait serait de pouvoir recuperer/modifier tous les parametres du datagridview que j'ai inserer dans mon usercontrol, est-ce possible de faire cela ?
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008 18 août 2006 à 14:27
Merci pour ton aide, j'ai un autre soucis sur lequel tu pourra certainement m'aider :
Comment recuprerer le parametrages des colonnes du datagridview ? J'ai essayé ceci :
public Object columns
{
get
{
return this.dataGridView1.Columns ;
}
set
{
this.dataGridView1.Columns.Clear() ;
}
}
Mais cela ne fonctionne absolument pas, aurait tu la solution ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 août 2006 à 09:44
Ben dans ce cas tu passes le CellType. Si t'en veux pour chaque colonnes, tu passes une collection de CellType (par ex. List<CellType>) puis tu fais les différentes affectations dans le 'set' de ta property.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 août 2006 à 11:11
Non, ce n'est pas possible tel quel.
La seule solution qui se rapproche le plus à ça, et de faire une property public qui retourne directement le datagrid en entier (à mettre donc dans le userControl) :
public DataGridView DgGridView
{
get { return this._dgGridV; }
set { this._dgGridV = vallue; }
}
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008 19 août 2006 à 12:51
C'est ce qu'il me faut, mais quand j'utilise mon usercontrol dans une autre appli et que je veux modifier les colonnes j'ai l'erreur suivante :
"La réference d'objet n'est pas definit a une instance d'un objet"
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008 19 août 2006 à 23:53
Je suis d'accord pour le control derivé, c'est ce qu'il me faut, mais comment inseré le composant que j'ai modifié dans ma form a partir du .cs que j'ai créé ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 20 août 2006 à 10:42
Bon finalement tu dérives de DataGridView ou de UserControl?
Visual Studio 2005 insére directement les nouveaux Control dans la bar d'outils, tu n'auras plus qu'à le draguer sur ta form, tout comme tu le fais avec un bouton.
Avec Visual Studio 2003, si mes souvenirs sont bons, faut faire un clique droit sur la barre d'outil, puis "ajouter nouveau" ou qqch comme ça.