none
Fonction ou .... ? RRS feed

  • Question

  • Bonjour,

    Dans mon application, j'ai plusieurs fois le code suivant

    Separator.Visible = False

    Txt_Recherche.Visible = False

    Btn_Fl_Dernier.Image = My.Resources.Dernier_T

    Btn_Fl_Precedent.Image = My.Resources.Precedent_T

    Btn_Fl_Suivant.Image = My.Resources.Suivant_T

    Btn_Fl_Premier.Image = My.Resources.Premier_T

    Btn_Reafficher.Image = My.Resources.Reafficher

    Btn_Chercher.Image = My.Resources.Chercher

    Btn_Quitter.Image = My.Resources.Sortir

    Lbl_Encour.BackColor = Color.FromArgb(118, 213, 185)

    Lbl_Total.BackColor = Color.FromArgb(157, 225, 164)

     

    Le nom de la forme change a chaque fois exemple : Frm_Clients ou Frm_Articles ou Frm_Stock,...

    J'aimerai le replacer par une fonction ou ... ?

    Donc, je me dis que je peut avoir une fonction qui l'affiche ca une sule fois, suivant la forme active

    comment faire

    Merci

    Cordialement

    Salva56

     

     

    mercredi 18 août 2010 12:46

Réponses

Toutes les réponses

  • Bonjour,

     

    Tu peux écrire une routine comme ceci

      Sub ParamForm(ByVal F1 As Form)
            With F1
                .Separator.Visible = False
                .Txt_Recherche.Visible = False
                .Btn_Fl_Dernier.Image = My.Resources.Dernier_T
                .Btn_Fl_Precedent.Image = My.Resources.Precedent_T
                .Btn_Fl_Suivant.Image = My.Resources.Suivant_T
                .Btn_Fl_Premier.Image = My.Resources.Premier_T
                .Btn_Reafficher.Image = My.Resources.Reafficher
                .Btn_Chercher.Image = My.Resources.Chercher
                .Btn_Quitter.Image = My.Resources.Sortir
                .Lbl_Encour.BackColor = Color.FromArgb(118, 213, 185)
                .Lbl_Total.BackColor = Color.FromArgb(157, 225, 164)
            End With
        End Sub

     

    et appeler la routine de cette manière:

               ParamForm(Form3)   

               Form3.Show()


    ou alors je pensais à select case

               select Case f2 as form
                Case Form1
                    Form1.Txt_Recherche.Visible = True


                Case Form2

                Case Else

            End Select

     


    fred
    • Proposé comme réponse EhJoe mercredi 18 août 2010 17:50
    mercredi 18 août 2010 14:01
  • Bonjour tout le monde,

    L'approche la plus propre consiste à ecrire un module ou un classe Vb et d'y inclure la méthode proprosée par fred75 mais en la rendant statique, ce qui facilitera sa réutilisation :

    Public Class MethodesForm
    
      ''' <summary>
      ''' Méthode statique
      ''' </summary>
      ''' <param name="f"></param>
      ''' <remarks></remarks>
      Public Shared Sub ParamForm(ByVal F1 As Form)
        With F1
          .Separator.Visible = False
          .Txt_Recherche.Visible = False
          .Btn_Fl_Dernier.Image = My.Resources.Dernier_T
          .Btn_Fl_Precedent.Image = My.Resources.Precedent_T
          .Btn_Fl_Suivant.Image = My.Resources.Suivant_T
          .Btn_Fl_Premier.Image = My.Resources.Premier_T
          .Btn_Reafficher.Image = My.Resources.Reafficher
          .Btn_Chercher.Image = My.Resources.Chercher
          .Btn_Quitter.Image = My.Resources.Sortir
          .Lbl_Encour.BackColor = Color.FromArgb(118, 213, 185)
          .Lbl_Total.BackColor = Color.FromArgb(157, 225, 164)
        End With
      End Sub
    
    End Class
    

    qui pourra s'utiliser comme ceci :

    MethodesForm.ParamForm(Frm_Clients)
    

    Jérémy Jeanson MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)
    mercredi 18 août 2010 15:16
  • Bonjour/bonsoir,

    Merci pour vos reponse.

    J'ai ceci.

    Apparemment, il ne reconnait pas les objets contenus dans la forme.

    Voici comment je l'appelle

    Dim Frm As System.Windows.Forms.Form

    Frm = Frm_Clients

    Cls_Formes.Images_Boutons(Frm)

    Merci de votre aide.

    Cordialement

    Salva56

     

     

    mercredi 18 août 2010 17:20
  • Bonjour,

     

    Le compilateur ne reconnait pas les membres de l’objet Frm parce-que l’objet est déclaré comme System.Windows.Forms.Form et en fait il est un objet dérivé de cette classe. Pour dépasser cette inconvenance, créez un objet dérivé de Form qui aura tous ces boutons dont vous voulez modifier l’image. A partir de cet objet dérivé (FrmCustom, disons), créez des classes avec des noms différents (Frm_Clients, Frm_Articles etc). Ce sont des objets de ces classes que vous allez envoyer comme paramètre a la méthode ParamForm.

    Une meilleure solution serait de créer une méthode ParamForm dans la classe FrmCustom et d’appeler cette méthode dans chaque objet, pour mettre à jour les contrôles membres.

     

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Café des usages

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

    jeudi 19 août 2010 14:58
  • Bonjour,

    Merci pour votre reponse.

    Les bouton et autres objets sont des objets d'un ToolBox.

    C'est ce qui pourrait expliquer pourquoi les objets ne sont pas "trouvable"

    Corialement.

    Salva

     

    lundi 23 août 2010 07:59
  • Bonjour tout le monde ;)

    Dans ce genre de cas, on peut très bien imaginer d'utiliser une From de base et d'en faire hériter les autres.

    Une seconde approche pourrait aussi consister à implémenter une interface sur les Form


    Jérémy Jeanson MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)
    lundi 23 août 2010 08:11