IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Programmation UI par Look&Feel et manuelle, ainsi que les handlers


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut Programmation UI par Look&Feel et manuelle, ainsi que les handlers
    Bonjour.
    Je suis nouveau en C#, venant de C++ et Java.
    J'emploie Microsoft Visual C# 2008 Express Ed. et son "Look&Feel" pour définir un premier 'Windows Form' :
    Un form contenant un SplitContainer dont
    - le panneau de gauche reçoit un TreeView
    - le panneau de droite reçoit un tableau + quelques 'Buttons'.

    J'observe qu'il se construit automatiquement
    - Un répertoire p.ex. intitulé "SelectModifConfig.cs" ([design]) et sous lui :
    - Un fichier "SelectModifConfig.Designer.cs"
    - Un autre fichier "SelectModifConfig.resx"

    Et le User Interface apparaît convenablement à l'écran, en cliquant sur le répertoire "SelectModifConfig.cs".

    2e étape : Je veux deux classes à part pour la définition du contenu du TreeView ainsi que du tableau, car ces deux classes devront se compliquer et fort grandir. En commençant par le TreeView :
    - Le constructeur de ma nouvelle classe 'SelModConf_TreeView.cs' réfère vers une fonction 'InitializeComponent()' qui définit tous les (sous-)noeuds de l'arbre.
    - J'ai ôté de la classe originale "SelectModifConfig.Designer.cs" toutes les commandes propres à TreeView et y ai substitué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.treeView_SMC = new JctUiPlugin.SelModConf_TreeView();
    Et le produit généré automatiquement par Look&Feel fonctionne bien, le TreeView y compris ... jusqu'au moment où je clique sur le TreeView, dans le formulaire du Look&Feel. A ce moment, le constructeur de code automatique recode tout le TreeView dans le fichier d'origine "SelectModifConfig.Designer.cs". La poisse.
    Q1: Comment maintenir une définition d'un élément (TreeView, tableau ...) dans une classe à part ?

    3e étape : Je décidai donc de créer manuellement le fichier principal du User Interface : "SelectModifConfig2.cs". Mais d'autres problèmes apparaissent :

    - J'ai dû ajouter ": Form" pour que Dispose(), SuspendLayout et ResumeLayout soient reconnus par le compilateur "life" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class SelectModifConfig2 : Form
    - Le compilateur 'life' souligne en rouge ondulé
    - - "splitContainer_SMC_Panel2_Paint" dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.splitContainer_SMC.Panel2.Paint += new PaintEventHandler(this.splitContainer_SMC_Panel2_Paint);
    - - "treeView_SMC_AfterSelect" dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.treeView_SMC.AfterSelect += new TreeViewEventHandler(this.treeView_SMC_AfterSelect);
    - J'ai dû ajouter les déclarations de data members suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private SizeF autoScaleDimensions;
            private AutoScaleMode autoScaleMode;
            private Size clientSize;
            private Control controls;   // Control ?
            private String name;
            private String text;
    , ce que le "SelectModifConfig.Designer.cs" généré par Look&Feel ne fait pas.

    - Le compilateur 'life' souligne en rouge ondulé 'Add' dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.controls.Add(this.splitContainer_SMC);
    Q2: De quelle classe est en fait 'controls' ?

    Q3: Pourquoi toutes ces rajoutes sont-elles nécessaires ?
    Que manquerait-il dans ma classe "manuelle" "SelectModifConfig2.cs" ?

    Q4: Quel tutoriel lire, bien fait concernant les 'User Interfaces' faits manuellement en C# ?

    Il me semble que ma démarche et mes questions sont celles de bon nombre de débutants.
    Merci au cas où vous y répondriez.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut Programmation UI par Look&Feel et manuelle, ainsi que les handlers
    Réponse partielle par moi-même :

    3e étape : Construction manuelle des classes de UI.
    Solutions à Q2 et Q3:

    "splitContainer_SMC_Panel2_Paint" et "treeView_SMC_AfterSelect" sont des références vers des fonctions qui étaient définies dans un autre fichier source de définition "partial class SelectModifConfig" !
    Solutionné en copiant ces fonctions dans mon source.

    "J'ai dû ajouter les déclarations de data members suivantes" = erreur.
    Ce sont des data members de la classe parente ("TreeView"). Solutionné en les mentionnant dans le constructeur de ma classe héritant de TreeView.

    Ma classe séparée pour TreeView fonctionne complètement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'un Look And Feel sans recompiler un programme
    Par Hell_Hibou dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/09/2009, 16h07
  2. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49
  3. Nouveau look and feel
    Par julian_ross dans le forum JBuilder
    Réponses: 6
    Dernier message: 16/12/2003, 15h55
  4. Jbuilder9 Look and feel de borland
    Par wsrudmen dans le forum JBuilder
    Réponses: 6
    Dernier message: 26/06/2003, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo