2010-06-29 7 views
0

J'ai un sous-formulaire (enfant) que je veux utiliser dans un certain nombre de parents. Je ne suis pas un développeur professionnel (je suis un architecte - je sais, vous pouvez enregistrer toutes les blagues ... :) - travail solo en ce moment). J'ai fini par utiliser un formulaire MDI avec le sous-formulaire en tant qu'enfant. Je maximise la forme du sous-formulaire et la plupart des choses vont bien sauf que bien que j'aie essayé de désactiver tous les widgets (le sous-formulaire du concepteur ne montre AUCUNE légende/icône/zone de bouton), j'obtiens DEUX icônes boutons sur la droite - dont seul le bouton de restauration fonctionne. Chacun des ensembles de boutons fonctionnera le formulaire un enfant..NET MDI enfant forme supprimer/masquer légende/zone d'icône

Y a-t-il un moyen de contourner ce problème? Je veux que le sous-formulaire soit "transparent" pour l'utilisateur - ils ne devraient pas être conscients qu'il y a un sous-formulaire en cours d'utilisation.

Je l'ai fait une recherche rapide et je avais déjà supprimé la légende réelle comme mentionné dans une autre réponse - pour obtenir la barre de légende supprimée dans le concepteur ...

Est MDI la bonne technologie, ou est existe-t-il une meilleure façon d'avoir le même sous-formulaire dans plusieurs formes parentes?

VS2008, C#, Windows 7

TIA, Paolo

Répondre

1

Il y a un bug WF qui doublera les glyphes si vous créez le formulaire enfant MDI dans le constructeur du parent. Voici un exemple:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     this.IsMdiContainer = true; 
     var child = new Form(); 
     child.MdiParent = this; 
     child.WindowState = FormWindowState.Maximized; 
     child.Show(); 
    } 
} 

Déplacez le code de création de formulaire enfant vers l'événement Load pour éviter cela.

+0

Merci Hans! Cela s'est débarrassé du "doublage". Maintenant, est-il possible de supprimer complètement la "barre"? – PaoloFCantoni

+0

Non, tout est privé, vous ne pouvez pas jouer avec. Il ne sert à rien d'utiliser MDI si vous exécutez toujours les formulaires enfants maximisés. –

+0

J'ai l'intention d'utiliser la forme de l'enfant maximisée. Alors, comment puis-je coupler l'enfant avec le parent sans MDI - juste un pointeur serait bon. Je ne suis pas sûr de savoir quel est le mécanisme à utiliser. Rappelez-vous, je suis juste un architecte (et un Data à cela! :) – PaoloFCantoni