Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Propriétés custom d'un activeX en C# [ Windows / ActiveX / COM ] (esopio)

mardi 10 juin 2008 à 10:32:40 | Propriétés custom d'un activeX en C#

esopio

Bonjour,

Aujourd'hui je suis capable de coder un objet activeX en C# par l'intermédiaire d'un userControl C#. Il suffit pour cela d'ajouter quelques lignes que voici dans ma classe héritant de UserControl :
Code :
public partial class MonUserControl : UserControl
{
#region Code interoperabilité activeX - C# à ne pas supprimer
[ComRegisterFunction]
public static void RegisterClass(Type t)
{
string keyName = @"CLSID\" + t.GUID.ToString("B");
using (RegistryKey key =
Registry.ClassesRoot.OpenSubKey(keyName, true))
{
key.CreateSubKey("Control").Close();
using (RegistryKey subkey = key.CreateSubKey("MiscStatus"))
{
subkey.SetValue("", "131457");
}
using (RegistryKey subkey = key.CreateSubKey("TypeLib"))
{
Guid libid = Marshal.GetTypeLibGuidForAssembly(t.Assembly);
subkey.SetValue("", libid.ToString("B"));
}
using (RegistryKey subkey = key.CreateSubKey("Version"))
{
Version ver = t.Assembly.GetName().Version;
string version = string.Format("{0}.{1}", ver.Major, ver.Minor);
if (version == "0.0") version = "1.0";
subkey.SetValue("", version);
}
}
}

[ComUnregisterFunction]
public static void UnregisterClass(Type t)
{
// Delete entire CLSID\{clsid} subtree
string keyName = @"CLSID\" + t.GUID.ToString("B");
Registry.ClassesRoot.DeleteSubKeyTree(keyName);
}
#endregion


/*La je peux commencer à coder comme si je développais un objet UserControl C# basique. */
private int unAttributExemple;
En toute honnêteté, je ne comprends pas réellement la signification de ces lignes, mais cela marche donc jusqu'ici je suis content. Mais j'ai un petit problème. Mon UserControl est sensé s'insérer sur des slides powerpoint et interagir avec l'utilisateur. Le problème est que mes attributs de classe C# (de mon UserControl et des autres classes) se sont pas sauvegardées dans le document (par exemple unAttributExemple dans le code ci-dessus). Du coup je perds toutes mes données quand je réouvre un document ppt sauvegardé avec mes UserControl et il n'y a plus d'intérêt à la chose. Alors peut être avez-vous déjà rencontré ce problème ou avez-vous une idée pour le résoudre.

Personnellement je pense que si je pouvais déclarer des propriétés custom (personalisé quoi) et leur affecter les valeurs de mes attributs, les données seraient sauvegarder.
Sinon j'ai la solution de la sauvegarde dans un XML, mais je pense que c'est moins propre quand même.

Une idée ?
merci

mardi 10 juin 2008 à 10:42:18 | Re : Propriétés custom d'un activeX en C#

Tilois

Ton userControl ne conserve effectivement pas les données dans les champs. Puisqu'ils sont remis à zéro lors de chaque instanciation du controle.
Si tu veux faire de la persistance des données il va falloir écrire tes données quelque part que ce soit en XML, une base de données ou sous tout autre format.

mardi 10 juin 2008 à 11:16:24 | Re : Propriétés custom d'un activeX en C#

esopio

L'idéal serait tout de même d'avoir accès aux propriétés de l'activeX. Mais c'est vrai que la tâche semble ardue. Ayant déjà eu à faire avec la programmation C++ d'un MFC activeX control, je peux dire que l'ajout de propriétés personnalisées se fait à l'aide de wizards. Alors le faire via C# semble effectivement pénible.



Cette discussion est classé dans : version, activex, key, usercontrol, subkey


Répondre à ce message

Sujets en rapport avec ce message

Transformer un UserControl en ActiveX [ par maxnoe ] Bonjour, Voila, j'ai prog un UserControl sous C#. Il fonctionne bien dans VisualStudio. Maitenant je voudrais le mettre sur mon site web. Donc je vo Probleme évenement click sur un ActiveX dans un UserControl [ par fcolo ] Bonjour,J'utilise l'ActiveX de VLC (logiciel de capture video) pour capturer le flux vidéo d'une caméra IP.Dans le logiciel que je réalise, je permet UserControl et evenement sur ces controles [ par fcolo ] Bonjour,J'ai un UserControl qui ne contient qu'un pictureBox (pour afficher les images d'une caméra IP).Je place cet UserControl sur ma form principal Databinding sur un UserControl [ par Neow26 ] Salut tout le monde,Je me suis fait une petit UserControl, rien de compliqué juste un libellé et une textbox afin de gérer mes saisies. Jusque là tout Révision Version ? [ par PegaseJM ] Bonjour,Lorsque je demande l'affichage de Application.ProductVersion, il m'affiche un truc du genre : 1.0.0.0Cependant, il me manque l'information "ré Déploiement ActiveX en résau [ par Axel971 ] Bonjour tout le monde,Je travaille actuellement sur un projet informatique utilisant la technologie ActiveX,Je programme sous VS.NET 2003, je voudrais Creer un UserControl contenant un Datagridview [ par ducker88 ] 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 UserControl Imbriqué [ par oliclaude ] Bonjour à tous, Je développe actuelement un UserControl qui représente des boutons verticaux à la Outlook. J'ai donc un control principale qui enc UserControl conteneur [ par ducker88 ] J'aimerai pouvoir recreer un collapsePanel.Quel objet doit je mettre pour qu'il puisse recevoir des control que je lui affecterai independament ?J'ai ajouter un evenement a usercontrol [ par cudenetf ] bonjour,j'ai un formulair equi utilise un user control (ce dernier possede plusieurs couleurs)j'aimmerais pouvoir definir ds le designer du formulaire


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,624 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.