OVH Cloud OVH Cloud

Propriété de type StringCollection dans un UserControl

2 réponses
Avatar
Christophe
bonjour,

Je d=E9veloppe en c#.

J'ai un membre priv=E9 de type StringCollection dans un=20
UserControl. Je voudrais pourvoir le mettre a jour via=20
l'=E9diteur de propri=E9t=E9 de resources, j'ai donc d=E9clar=E9 une=20
proprit=E9 public qui me set et renvoie ce membre.
Tout est ok, la propri=E9t=E9 apparait bien dans les resouces,=20
mais lorsque je clike sur le bouton add du dialog associ=E9=20
alrs j'ai le message: "Constructor on type System.String=20
not found".

voici un sample de mon code:
public class UcIdListCtrl :=20
System.Windows.Forms.UserControl
{
(...)
private StringCollection _grammars;
public UITypeEditor Grammar
{
set
{
}
get
{
return _grammars ;
}
}
(...)
public UcIdListCtrl()
{
InitializeComponent();
_grammars =3D new StringCollection();
_grammars.Add(@"(CBN-)(?<idNumber>[0-9]+)");
_grammars.Add(@"(JMS~)(?<idNumber>[0-9]+)");
}

PS: par contr je vois bien ce que j'ai s=E9t=E9 dans mon code=20
en dur dans le ctor, ie:"(CBN-)(?<idNumber>[0-9]+)"=20
et "(JMS~)(?<idNumber>[0-9]+)" ;

Merci beaucoup

2 réponses

Avatar
Mitsuru FURUTA [Ms]
Bonjour,

Ton problème est malheureusement normal.
Comment cela fonctionne-t-il ?
Le designer de Visual Studio fournit un éditeur de collection de base.
Celui-ci contient un bouton Add qui est forcément générique puisque capable
d'ajouter un élément à n'importe quelle collection. Par contre le minimum
requis est d'avoir un constructeur de type void et sans paramètres, ce que
la classe string n'a pas.
Je crois que tu es bon pour développer ta propre collection.
Il y a un très bon exemple sur le site codeproject:
http://www.thecodeproject.com/csharp/DzCollectionEditor.asp

Bonne continuation,

Mitsuru FURUTA
[Microsoft FRANCE]

"Christophe" wrote in message
news:34e501c4abb6$81740b40$
bonjour,

Je développe en c#.

J'ai un membre privé de type StringCollection dans un
UserControl. Je voudrais pourvoir le mettre a jour via
l'éditeur de propriété de resources, j'ai donc déclaré une
proprité public qui me set et renvoie ce membre.
Tout est ok, la propriété apparait bien dans les resouces,
mais lorsque je clike sur le bouton add du dialog associé
alrs j'ai le message: "Constructor on type System.String
not found".

voici un sample de mon code:
public class UcIdListCtrl :
System.Windows.Forms.UserControl
{
(...)
private StringCollection _grammars;
public UITypeEditor Grammar
{
set
{
}
get
{
return _grammars ;
}
}
(...)
public UcIdListCtrl()
{
InitializeComponent();
_grammars = new StringCollection();
_grammars.Add(@"(CBN-)(?<idNumber>[0-9]+)");
_grammars.Add(@"(JMS~)(?<idNumber>[0-9]+)");
}

PS: par contr je vois bien ce que j'ai sété dans mon code
en dur dans le ctor, ie:"(CBN-)(?<idNumber>[0-9]+)"
et "(JMS~)(?<idNumber>[0-9]+)" ;

Merci beaucoup
Avatar
merci bien!!

-----Message d'origine-----
Bonjour,

Ton problème est malheureusement normal.
Comment cela fonctionne-t-il ?
Le designer de Visual Studio fournit un éditeur de


collection de base.
Celui-ci contient un bouton Add qui est forcément


générique puisque capable
d'ajouter un élément à n'importe quelle collection. Par


contre le minimum
requis est d'avoir un constructeur de type void et sans


paramètres, ce que
la classe string n'a pas.
Je crois que tu es bon pour développer ta propre


collection.
Il y a un très bon exemple sur le site codeproject:
http://www.thecodeproject.com/csharp/DzCollectionEditor.as


p

Bonne continuation,

Mitsuru FURUTA
[Microsoft FRANCE]

"Christophe" wrote


in message
news:34e501c4abb6$81740b40$
bonjour,

Je développe en c#.

J'ai un membre privé de type StringCollection dans un
UserControl. Je voudrais pourvoir le mettre a jour via
l'éditeur de propriété de resources, j'ai donc déclaré une
proprité public qui me set et renvoie ce membre.
Tout est ok, la propriété apparait bien dans les resouces,
mais lorsque je clike sur le bouton add du dialog associé
alrs j'ai le message: "Constructor on type System.String
not found".

voici un sample de mon code:
public class UcIdListCtrl :
System.Windows.Forms.UserControl
{
(...)
private StringCollection _grammars;
public UITypeEditor Grammar
{
set
{
}
get
{
return _grammars ;
}
}
(...)
public UcIdListCtrl()
{
InitializeComponent();
_grammars = new StringCollection();
_grammars.Add(@"(CBN-)(?<idNumber>[0-9]+)");
_grammars.Add(@"(JMS~)(?<idNumber>[0-9]+)");
}

PS: par contr je vois bien ce que j'ai sété dans mon code
en dur dans le ctor, ie:"(CBN-)(?<idNumber>[0-9]+)"
et "(JMS~)(?<idNumber>[0-9]+)" ;

Merci beaucoup


.