Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Vecteur de contrôles

    27 mars 2007 à 14:13:37

    Salut à tous,

    Je voudrais faire un vecteur de contrôles (que ce soit des boutons, des textbox ou des picturebox) mais dirrectement en créant l'interface, c'est à dire lorsque je dispose a la main mes contrôles sur la form.
    Je fesait cela en Visual Basic tres simplement mais ici je ne vois pas comment faire...

    Merci à vous

    thanatoster
    • Partager sur Facebook
    • Partager sur Twitter
      27 mars 2007 à 15:57:58

      tu veux dire en RAD ? quand tu fais "apllication windows" çà tu devrait avoir une "form" qui apparaitre. Et les composants sont dans la fenêtre flottante (cachée) à gauche
      • Partager sur Facebook
      • Partager sur Twitter
        27 mars 2007 à 16:19:33

        Je ne sais po ce que c'est RAD, ce que je veux dire c'est que je veux pouvoir accéder à mes contrôles en fesant par exemple :


        button[x].text = "machin";


        ou


        PictureBox[x].Image = MonImage;
        • Partager sur Facebook
        • Partager sur Twitter
          27 mars 2007 à 16:52:22

          Salut,

          En fait, quand tu crée ta fenêtre "en disposant à la main les contrôles sur la form" (ce qui, au passage, revient à faire du RAD, Rapid Application Development), les contrôles sont automatiquement ajoutés à la collection de contrôles de la form, à laquelle tu peux accéder grâce à la propriété Controls de ton objet form.

          // Accède au nième contrôle.
          maform.Controls[n].Text = "machin";

          // Accède au contrôle appelé "truc"
          maform.Controls["truc"].Text = "truc"


          À noter que les objets de la collection Controls sont de type Control, donc tu ne peux accéder qu'aux propriétés générique à tous les contrôles. Si tu veux accéder à une propriété d'un contrôle dérivé, tu dois d'abord le transtyper:
          // Accède au PictureBox appelé "bidule"
          ((PictureBox)maform.Controls["bidule"]).Image = imageDeBidule;
          • Partager sur Facebook
          • Partager sur Twitter
            27 mars 2007 à 17:16:05

            Ca c'est cool mais ca me semble un tout petit peu dangeureux non??

            Il faut pas se louper quoi...
            • Partager sur Facebook
            • Partager sur Twitter
              27 mars 2007 à 17:23:58

              Ah ça, effectivement, quand tu transtype tu passes outre les vérifications de type normalement effectuées par le compilateur, donc c'est à _toi_ de savoir ce que tu fait. Si tu te trompes, tu ne le sauras qu'à l'exécution avec une jolie InvalidCastException...
              • Partager sur Facebook
              • Partager sur Twitter
                27 mars 2007 à 19:52:09

                D'où l'utilité de caster avec des opérateurs comme as en testant ensuite la nullité.

                object obj = new object();
                string str = obj as string;
                // Normalement str est null
                if (str == null)
                    Console.WriteLine("Grosse boulette");
                • Partager sur Facebook
                • Partager sur Twitter

                [C#] Vecteur de contrôles

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown