Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2718 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Création d'un bouton dans une DLL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Création d'un bouton dans une DLL

n°2309254
DarkHorse
Posté le 22-12-2017 à 15:21:03  profilanswer
 

Bonjour à vous,
 
Je crée une interface C# en utilisant les WinForms.  
Je souhaite ajouter un Widget personnalisé à une Form. Ce widget est similaire à un NumericUpDown, mais adapté pour des écrans tactiles, c'est à dire que mon bouton est composé d'un TextBox, d'un gros bouton "+" et d'un gros bouton "-".  
 
Pour mes tests, j'ai:

  • Une interface simple constitué d'une Form et d'un Panel à l'intérieur de la Form: Form1.  
  • Ma DLL contenant mon bouton personnalisé: MyNUD. Ce bouton est crée à l'intérieur d'une Form MyForm sans bords.


Du coup, dans l'interface j'inclus ma DLL et dans le constructeur j'exécute le code suivant:

Code :
  1. public partial class Form1 : Form
  2. {
  3.     ButtonNUD.MyNUD Nud;
  4.     public Form1()
  5.     {
  6.         InitializeComponent();
  7.         ButtonNUD.MyNUD Nud = new ButtonNUD.MyNUD(panel1);
  8.     }
  9. }


Ce qui exécute le code dans ma DLL:

Code :
  1. public class MyNUD
  2. {
  3.     private MyForm form;
  4.     public MyNUD(Panel parent)
  5.     {
  6.         if(form == null)
  7.         {
  8.             form = new MyForm();
  9.             form.Enabled = true;
  10.             form.AutoSize = true;
  11.             form.TopLevel = false;
  12.             form.Dock = DockStyle.Fill;
  13.             parent.Controls.Add(form);
  14.         }
  15.         form.Show();
  16.     }
  17. }


Là ou ça pose problème, c'est que le bouton n’apparaît pas dans ma Panel. Même en exécutant les méthodes .Update() ou .Refresh() sur le Panel ou la Form1.
Par contre, en ajoutant un bouton dans la Form1 à côté de mon panel et que sur l'événement Click de ce bouton j'insère l'appel du constructeur de ma DLL, MyNUD s'affiche correctement.  

Code :
  1. public partial class Form1 : Form
  2. {
  3.     ButtonNUD.MyNUD Nud;
  4.     public Form1()
  5.     {
  6.         InitializeComponent();
  7.         ButtonNUD.MyNUD Nud = new ButtonNUD.MyNUD(panel1); // Ne fonctionne pas
  8.     }
  9.     private void button1_Click(object sender, System.EventArgs e)
  10.     {
  11.         ButtonNUD.MyNUD Nud = new ButtonNUD.MyNUD(panel1); // Fonctionne
  12.     }
  13. }


Est-ce que vous avez une idée de pourquoi cela ne fonctionne pas dès le démarrage ?  


---------------
Corvette C5 Coupé owner
mood
Publicité
Posté le 22-12-2017 à 15:21:03  profilanswer
 

n°2309261
DarkHorse
Posté le 22-12-2017 à 19:04:43  profilanswer
 

Problème résolu, il ne faut pas passer par une classe qui construit MyForm, mais directement utiliser la classe MyForm.


---------------
Corvette C5 Coupé owner

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Création d'un bouton dans une DLL

 

Sujets relatifs
bouton télécharger dans le player vidéo sous chromeInsérer caractères spéciaux dans zone de liste en cliquant sur bouton
Création site - Par où commencer ? Qui contacter ?Création d'un fichier avec signature MD5 définie
[RaspberryPi3] Bluetooth : bouton pour rendre le raspberry détectableCréation de boucle pour un affichage de deux tables
Cliquer sur un bouton d'une boite de dialogue via un script[Résolu] Problème curieux sur bouton Partager
Probleme de fermeture d'une jframe à partir d'un bouton 
Plus de sujets relatifs à : Création d'un bouton dans une DLL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR