Home

Introduction aux Contrôles Conteneurs

 

La Vue d'ensemble des contrôles parent

 

Introduction

L'Objet d'une application est appelé par programmation en tant que parent lorsqu'il peut héberger, maintenir ou porter d'autres objets. Pour cette raison, une telle fenêtre est également considérée comme un conteneur.

Bien que le premier objet qui vient à l'esprit soit la forme, ce n'est pas la seule fenêtre qui peut agir en tant que parent. Cela signifie que, dans votre aventure de programmation d'application, vous allez vous familiariser avec différents types de conteneurs et ils visent à jouer des rôles différents. Dans certains cas, deux ou plusieurs conteneurs peuvent être utilisés pour mettre en Å“uvre les mêmes fonctionnalités. Dans d’autres cas, votre choix sera réduit en fonction de votre objectif.

Le plus commun et le conteneur le plus largement répandu est le formulaire. Dans une application, un formulaire peut être configuré pour afficher comme une boîte de dialogue régulier, pour devenir un Single Document Interface (SDI) ou de participer à une application MDI (Multiple Document Interface).

Comme déjà dit, il existe deux catégories de contrôles : parents et enfants :

  • Parent : Les contrôles enfants sont placés sur un parent. Pour assurer le suivi de ses enfants, un contrôle parent a la propriété Controls. Pour créer un contrôle à l'intérieur d'un parent, un contrôle enfant est ajouté à la propriété Controls du parent à l'aide de la méthode Controls.Add(). Lorsqu'un contrôle parent est créé, il "donne vie" aux autres fenêtres qui peuvent en dépendre. Lorsqu'un parent est détruit, il détruit également ses enfants. Un contrôle parent "porte", "contient" ou héberge les contrôles positionnés sur lui. Lorsqu'un parent est créé, devient actif ou rendu visible, il donne de l’existence et de la visibilité à ses contrôles. Lorsqu'un parent devient masqué, il masque également ses contrôles. Si un parent se déplace, il se déplace avec ses enfants. Les contrôles conservent leurs positions et leurs dimensions à l'intérieur du parent. Le .NET Framework fournit divers contrôles parent.
  • Enfant : Une Fenêtre est appelée enfant lorsque son existence, sa visibilité et sa disponibilité dépendent d'une autre fenêtre dénommée son parent. Sauf pour les formulaires, tous les contrôles de Windows que vous utiliserez dans vos applications sont des contrôles enfants et ils doivent être parentés par un autre contrôle.

Une fenêtre enfant peut être le parent d'un autre contrôle. Par exemple, la barre d'outils standard de Visual Studio 2010 est le parent des bouons de dessus. Si vous fermez ou masquez la barre d'outils, ses enfants disparaissent. Dans le même temps, la barre d'outils est un enfant du formulaire de l'application. Si vous fermez l'application, la barre d'outils disparaît, avec ses propres enfants. Dans cet exemple, la barre d'outils est un enfant de l'écran, mais est un parent de ses boutons.

L'Utilisation d'un contrôle parent

Le type de conteneur que vous souhaitez utiliser détermine comment acquérir ce conteneur et l’ajouter à votre application. Les Contrôles parent sont quelque peu divisés en deux grandes catégories : les parents principaux et les parents intermédiaires. Une fois que vous avez passé du temps avec eux, vous déciderez lequel et quand utiliser un contrôle particulier.

Le type principal de contrôle parental que vous utiliserez est un formulaire. Il est utilisé comme plate-forme d'autres contrôles, y compris d'autres conteneurs. Par conséquent, lorsque vous démarrez votre application, vous décidez tout d'abord sur le type d'application. Si vous créez une application Windows Forms, il est automatiquement équipé d'un écran sur lequel vous pouvez ajouter des contrôles enfants. Lorsque l'application s'exécute, il peut présenter son contenu à l'utilisateur :

The form as a Parent

La deuxième catégorie des parents que vous rencontrerez est qualifiée comme intermédiaire. Les Thèses conteneurs ne peuvent pas être la base d'une application, comme l'écran. Ces parents doivent être positionnés sur un autre parent tout d'abord, puis ils peuvent héberger leurs propres enfants. Un exemple d'un tel parent est la page de propriétés, également appelée contrôle onglet. Ce contrôle doit être hébergé par un écran ou une boîte de dialogue. Voici un exemple d'une feuille de propriétés (boîte de dialogue) qui héberge trois pages de propriétés (onglet contrôles) et chaque page de propriétés héberge ses propres contrôles enfants :

Property Pages

Un autre type de conteneur intermédiaire est la barre d'outils qui est généralement utilisée pour héberger les différents boutons.

Introduction aux boîtes de dialogue

 

Description

Une boîte de dialogue est une forme définie avec des propriétés particulières. Comme un formulaire, une boîte de dialogue est appelée un conteneur. Comme un formulaire, une boîte de dialogue est surtout utilisée pour héberger des contrôles enfants, assurant le rôle de la boîte de dialogue entre l'utilisateur et la machine. Voici un exemple d'une boîte de dialogue :

The Run dialog box


Une boîte de dialogue présente les caractéristiques suivantes :

  • Le seul bouton de système avec lequel il est équipé est Close System Close. Comme le seul bouton de système, ce bouton permet à l'utilisateur de fermer la boîte de dialogue et d'ignorer tout ce qu’aurait fait l'utilisateur dans la boîte de dialogue

  • Il ne peut pas être réduit, agrandi ou restauré. Une boîte de dialogue n'a aucun autre bouton de système que Close.

  • Il est généralement modale, auquel cas l'utilisateur n'est pas autorisé à continuer toute autre opération sur l'application jusqu'à ce que la boîte de dialogue soit rejetée.

  • Il permet à l'utilisateur de fermer ou disparaître

ApplicationApplication : Présentation des Boîtes de Dialogue

  1. Démarrez Microsoft Visual Studio
  2. Créez une nouvelle Application Windows nommée SolasPropertyRental1
  3. Dans la section de contrôles communs de la boîte à outils, cliquez sur le bouton, puis cliquez sur la forme
  4. Alors que le bouton est sélectionné dans le formulaire, dans la fenêtre Propriétés, cliquez sur (Name) et tapez btnNewProperty
  5. Cliquez sur le texte et tapez la Nouvelle propriété
  6. Pour ajouter une autre forme à ce projet, dans le menu principal, cliquez sur projet - > ajouter un formulaire Windows...
  7. Définissez le nom de PropertyEditor et cliquez sur Ajouter
  8. Dans la section de contrôles communs de la boîte à outils, cliquez sur le bouton, puis cliquez sur la forme
  9. Alors que le bouton est sélectionné dans le formulaire, dans la fenêtre Propriétés, cliquez sur (Name) et tapez btnOK
  10. Cliquez sur le texte et tapez OK
  11. Dans la section de contrôles communs de la boîte à outils, cliquez sur le bouton, puis cliquez sur la forme
  12. Alors que le bouton est sélectionné dans le formulaire, dans la fenêtre Propriétés, cliquez sur (Name) et tapez btnCancel
  13. Cliquez sur le texte et tapez Annuler

La Création de boîte de dialogue

Pour créer une boîte de dialogue, vous démarrez avec un formulaire que vous pouvez obtenir par la création d'une Application Windows ou dériver une classe du formulaire. Voici un exemple :

using System;  
using System.Drawing;  
using System.Windows.Forms;    
 
 
public class Exercise : System.Windows.Forms.Form  
{      
	  public Exercise()      
	  {          
			InitializeComponent();      
	  }        
	  private void InitializeComponent()      
	  {          
			Text = "Domain Configuration";          
			Width = 320;          
			Height = 150;          
			Location = new Point(140, 100);          
			StartPosition = FormStartPosition.CenterScreen;      
	 }  
}    
 
 
public class Program  
{      
	static int Main()      
	{          
		System.Windows.Forms.Application.Run(new Exercise());          
		return 0;      
	}  
}

Cela produirait :

Starting a dialog box

 

Les Caractéristiques des boîtes de dialogue

 

Le style de bordure d'une boîte de dialogue

Il existe quelques actions que vous devez réaliser sur un formulaire pour le transformer en une boîte de dialogue ; mais normalement, ce sont uniquement des suggestions, pas des règles. Selon la conception de Microsoft Windows et les normes, pour créer une boîte de dialogue, vous devez définir un formulaire € â„¢ s la propriété FormBorderStyle à FixedDialog. La définition de cette propriété modifie les bordures du formulaire aux bordures standard d'une boîte de dialogue (la bordure d'une boîte de dialogue est plus mince que celle d'un formulaire standard). Vous pouvez définir cette caractéristique dans la fenêtre Propriétés ou par programmation. Voici un exemple :

private void InitializeComponent()  
{          
		Text = "Domain Configuration";          
		Width = 320;          
		Height = 150;          
		Location = new Point(140, 100);         
	 	StartPosition = FormStartPosition.CenterScreen;            
 
		FormBorderStyle = FormBorderStyle.FixedDialog;  
}

La réduction et la maximisation des boîtes

En plus de prendre soin de la bordure, vous devez définir également tant MinimizeBox que les propriétés MaximizeBox sur False. Cela provoque la fenêtre pour afficher uniquement le bouton Fermer Système. Vous pouvez définir ces caractéristiques dans la fenêtre Propriétés ou par programmation. Voici un exemple :

private void InitializeComponent()  
{          
 
 
		Text = "Domain Configuration";          
		Width = 320;          
		Height = 150;          
		Location = new Point(140, 100);          
		StartPosition = FormStartPosition.CenterScreen;            
 
		FormBorderStyle = FormBorderStyle.FixedDialog;          
		MinimizeBox = false;          
		MaximizeBox = false;  
}

Cela produirait :

Form

ApplicationApplication : Une boîte de dialogue Configuration

  • Pour transformer le formulaire PropertyEditor dans une boîte de dialogue, dans la fenêtre Propriétés, modifiez ses caractéristiques comme suit :
    FormBorderStyle : la valeur FixedDialog
    StartPosition : CenterParent
    MinimizeBox : false
    MaximizeBox : false
    ShowInTaskbar : false

La Fermeture d'une boîte de dialogue

Vous devez fournir un moyen à l'utilisateur pour fermer la boîte de dialogue. Une boîte de dialogue doit avoir au moins un bouton OK. Ce bouton permet à l'utilisateur de reconnaître le message de la boîte de dialogue et de le fermer en cliquant sur le bouton. Si l'utilisateur appuie sur Entrée, la boîte de dialogue devrait également être fermée, comme si le bouton OK était cliqué.

L'Acceptation d'une action

Souvent, l'utilisateur sera présenté avec différentes options dans une boîte de dialogue et il peut vous être demandé de prendre une décision sur les contrôles disponibles. La plupart du temps, si vous créez une telle boîte de dialogue, outre le bouton OK, il doit également avoir un bouton Annuler. Le bouton OK devrait être la valeur par défaut de sorte que si l'utilisateur appuie sur la touche Entrée, la boîte de dialogue serait fermée comme si l'utilisateur a cliqué sur OK.

Cliquer sur OK ou appuyer sur entrée indiquerait que, si l'utilisateur avait apporté des modifications sur les commandes de la boîte de dialogue, ces changements seraient reconnus et conservés lorsque la boîte de dialogue est fermée et généralement les valeurs modifiées du contrôle seraient transférées à une autre boîte de dialogue ou un autre formulaire. N'oubliez pas que vous êtes responsable de la mise en Å“uvre de cette fonctionnalité.

Pour remplir cette fonctionnalité du bouton OK, après l'avoir ajoutée à une boîte de dialogue (ou formulaire), ouvrez la zone de liste déroulante AcceptButton dans la fenêtre des propriétés du formulaire et sélectionnez le nom du bouton.

ApplicationApplication : Accepter une action

  1. Cliquez sur une zone inoccupée du formulaire
  2. Dans la fenêtre Propriétés, cliquez sur la flèche du champ AcceptButton et sélectionnez btnOK

L'Annulation d'une action

Le bouton Annuler est utilisé pour permettre à l'utilisateur de rejeter toute modification qui aurait été faite sur les commandes de la boîte de dialogue. La boîte de dialogue doit également être configurée afin que si l'utilisateur appuie sur la touche Echap, la boîte de dialogue sera fermée comme si l'utilisateur a cliqué sur Annuler.

Pour remplir cette fonctionnalité du bouton Annuler, après l'avoir ajoutée à une boîte de dialogue (ou formulaire), ouvrez la zone de liste déroulante CancelButton dans la fenêtre des propriétés du formulaire et sélectionnez le nom du bouton.

Outre les boutons Annuler et OK, une boîte de dialogue peut être créée avec des boutons supplémentaires tels que la Fin ou l'Aide, etc.. Cela dépend de son rôle et la décision est prise par le développeur de l'application.

ApplicationApplication : Annuler une action

  1. Dans la fenêtre Propriétés, cliquez sur la flèche du champ CancelButton et sélectionnez btnCancel
     
    Solas Property Rental
  2. Pour afficher la première forme, dans le menu principal, cliquez sur Windows - > Form1.cs [Design]

Le bouton d'aide

Outre le bouton Close de système, si vous envisagez d'apporter une aide sur une boîte de dialogue, vous pouvez l’équiper avec un bouton d'Aide. Pour cela, la classe Form est équipée d'une propriété de type Boolean nommée HelpButton. La valeur par défaut de cette propriété est false. Dans la fenêtre Propriétés, vous pouvez le définir sur true. Si vous créez par programmation la boîte de dialogue, vous pouvez accéder à cette propriété et définir sa valeur sur true. Voici un exemple :

private void InitializeComponent()  
{          
		Text = "Domain Configuration";          
		Width = 320;          
		Height = 150;          
		Location = new Point(140, 100);          
		StartPosition = FormStartPosition.CenterScreen;            
 
		FormBorderStyle = FormBorderStyle.FixedDialog;          
		MinimizeBox = false;          
		MaximizeBox = false;            
		HelpButton = true;  
}

Cela donnerait :

Form

Lorsque l'utilisateur clique sur le bouton d'Aide, le curseur de la souris devient équipé d'un point d'interrogation. Voici un exemple :

Form

Vous pouvez ensuite écrire du code afin que, lorsque l'utilisateur clique sur un contrôle sur la boîte de dialogue, un peu d’aide de base est fournie comme une info-bulle.

Les boîtes de dialogue Modales et Modeless

 

Les Boîtes de dialogue Modales

Il existe deux types de boîtes de dialogue : Modales et Modeless.

Une boîte de dialogue Modale est celle que l'utilisateur doit tout d'abord fermer afin d'avoir accès à toute autre fenêtre encadrée ou boîte de dialogue de la même application. L’un des scénarios dans lesquels vous utilisez une boîte de dialogue est de créer une application qui est centrée sur soi. Dans ce cas, s’il n'existe aucune autre forme ou boîte de dialogue dans votre application ou toutes les autres formes ou boîtes de dialogue dépendent de cette boîte de dialogue central, il doit être créé comme modale. Une telle demande est appelée comme base de dialogue.

Certaines applications exigent diverses boîtes de dialogue pour terminer leur fonctionnalité. Dans certains cas, il se peut que vous deviez appeler une boîte de dialogue d’une autre et l’afficher comme modale. Voici un exemple :

La boîte de dialogue Date et heure de WordPad est modale : quand elle affiche, l'utilisateur ne peut pas utiliser toute autre partie de WordPad que si il ou elle ferme cet objet en premier

Modal

Après la création d'une boîte de dialogue utilisée comme un complément à un formulaire existant ou une boîte de dialogue existante, pour l’appeler comme modale, utilisez la méthode ShowDialog().

Les Boîtes de dialogue Modeless

Une boîte de dialogue est dénommée modeless si l'utilisateur n'a pas à la fermer afin de continuer à utiliser l'application qui est propriétaire de la boîte de dialogue. Une boîte de dialogue modeless a les caractéristiques suivantes

  • Elle a une fine bordure.

  • Elle ne peut être ni réduite ni agrandie. Cela signifie qu'elle n'est pas équipée avec les boutons Minimize ou Maximize.

  • Elle n'est pas représentée sous la barre des tâches avec un bouton.

  • Elle doit fournir un moyen à l'utilisateur pour la fermer

Voici un exemple :

La recherche (et le remplacement) de la boîte de dialogue de WordPad (également le fait de rechercher et de remplacer les boîtes de dialogue de la plupart des applications) est un exemple d'une boîte de dialogue modeless. Si elle est ouverte, l'utilisateur n'a pas à le fermer afin d'utiliser l'application ou le document en arrière-plan.

Modeless

Comme la boîte de dialogue modeless n'affiche pas le bouton sur la barre des tâches, l'utilisateur doit savoir que la boîte de dialogue est ouverte. Pour rendre la présence d'une boîte de dialogue modeless évidente pour l'utilisateur, elle s'affiche souvent au-dessus de son application hôte jusqu'à ce que l'utilisateur la ferme.

Une boîte de dialogue modeless est créée à partir d'un formulaire, mais elle doit ressembler à une boîte de dialogue régulière ou dans une fenêtre de l'outil.

Donc, pour créer une boîte de dialogue modeless, définissez la propriété FormBorderStyle, une valeur appropriée comme FixedSingle, FixedToolWindow, dimensionnable ou SizableToolWindow. En outre, définissez sa propriété ShowInTaskbar sur false.

Après la création de la boîte de dialogue pour l'afficher comme modeless, appelez la méthode Show(). La différence fondamentale entre ShowDialog() et les méthodes Show() est que la première affiche une boîte de dialogue modale, qui s'assure que la boîte de dialogue appelé ne peut pas aller en arrière-plan de l'application principale. En revanche, la méthode Show() appelle uniquement la boîte de dialogue chaque fois qu'elle est demandée. Pour cette raison, c'est à vous de vous assurer que la boîte de dialogue modale demeure toujours au dessus de l'application. Ceci est facilement pris en charge en définissant la propriété Boolean TopMost du formulaire sur True.

Il existe deux façons principales, qu'une boîte de dialogue modale normale peut être rejetée :

  • Si l'utilisateur a fini de l'utiliser, il ou elle peut la fermer et la rappeler à volonté

  • Lorsque le formulaire ou l'application qui est propriétaire de la boîte de dialogue modale est fermée, le formulaire ou l'application ferme la boîte de dialogue modale si elle est ouverte ; cela signifie que vous n'avez pas besoin de savoir si une boîte de dialogue modale est toujours ouverte lorsque l'application est détruite : l'utilisateur ou l'application elle-même s'occupera de fermeture

Une application avec divers formulaires ou des boîtes de dialogue

Lorsque vous créez une Application Windows Forms, l'écran de départ est mis à votre disposition. Si un formulaire n'est pas suffisant pour votre application, vous pouvez en ajouter autant que nécessaire. Pour ajouter (ou créer) un (nouveau) formulaire, vous disposez de différentes options :

  • Dans le menu principal, vous pouvez cliquer sur Project - > ajouter un nouvel élément...
  • Dans le menu principal, vous pouvez cliquer sur fichier - > ajouter un nouvel élément...
  • Dans l'Explorateur de solutions, vous pouvez cliquer sur le nom du projet, positionnez la souris sur Ajouter et cliquez sur Ajouter un nouvel élément...

Dans la boîte de dialogue Add New Item et dans la section modèles, cliquez sur la fenêtre Form (.NET), indiquez un nom dans la zone de modification de nom, puis cliquez sur Ouvrir.
Si votre application utilise diverses formes et que vous souhaitez afficher un particulier au moment du design :

  • Dans le Concepteur Forms, vous pouvez cliquer sur l'onglet qui correspond à la forme souhaitée et qui a [Design]

  • Dans le menu principal, vous pouvez cliquer sur la fenêtre et cliquez sur le nom du formulaire dans la liste sous Fermer tous les documents

  • Dans l'Explorateur de solutions, développez le nÅ“ud de fichiers d'en-tête, si nécessaire et double-cliquez sur le nom du formulaire souhaité qui comporte l'extension .h

Si vous ajoutez visuellement deux formulaires (ou plus) à votre application, vous pourriez peut-être les relier, pour permettre à l’un d'appeler l'autre. Pour cela, dans la partie supérieure du fichier, tapez # Include suivi du nom du fichier d'en-tête dans lequel le formulaire a été défini. Dans la section où vous souhaitez accéder à l'écran, déclarez une poignée à la classe du formulaire et utilisez l'opérateur new alloué à la mémoire pour elle. Pour afficher l’autre formulaire, vous pouvez appeler sa méthode Show().

ApplicationApplication: Utilisation de divers formulaires

  1. Double-cliquez sur la nouvelle propriété... bouton et mettez en Å“uvre l'événement comme suit :
    private void btnNewProperty_Click(object sender, EventArgs e)  
    {      
    	  PropertyEditor dlgEditor = new PropertyEditor();        
     
    	  dlgEditor.ShowDialog();  
    }
  2. Pour exécuter l'application, dans le menu principal, cliquez sur Debug - > démarrer le débogage
  3. Sur l'écran, cliquez sur le bouton Nouvelle propriété pour afficher la boîte de dialogue
  4. Dans la boîte de dialogue, cliquez sur Annuler
  5. Fermez le formulaire et le retournez à votre environnement de programmation

La Zone de Groupe

 

Description

Un groupe est une fenêtre qui dessine une ligne de bordure tout autour. Cela permet de dessiner un pseudo-élément limitant d'autres contrôles. Pour indiquer à quoi elle sert, une zone de groupe peut afficher un titre, également appelé sa légende. Voici un exemple d'une zone de groupe sur un formulaire :

Group Box

La Création de la Zone de Groupe

Pour prendre en charge la Zone de Groupe, le .NET Framework fournit la classe GroupBox. Au moment du design, pour ajouter une zone de groupe à votre application, dans la section de conteneurs de la boîte à outils, cliquez sur GroupBox et cliquez sur le formulaire (ou un autre conteneur). Pour créer par programmation une zone de groupe, vous pouvez créer une poignée à GroupBox, pour allouer de la mémoire en utilisant l'opérateur new et l’ajouter à la collection Controls de son conteneur. Voici un exemple :

using System;  
using System.Drawing;  
using System.Windows.Forms;
 
public class Exercise : System.Windows.Forms.Form  
{
	GroupBox grpHolder; 
 
	public Exercise()      
	{          
		InitializeComponent();      
	}        
  
	private void InitializeComponent()      
	{ 
		grpHolder = new GroupBox();          
		grpHolder.Left   = 22;          
		grpHolder.Top    = 18;          
		grpHolder.Width  = 120;          
		grpHolder.Height = 58;          
		Controls.Add(grpHolder);      
	}  
}     
 
public class Program  
{      
	static int Main()      
	{          
		System.Windows.Forms.Application.Run(new Exercise());          
		return 0;      
	}  
}

Cela donnerait :

 

Les Caractéristiques d' une Zone de Groupe

 

La légende d'une Zone de Groupe

Comme vous pouvez le voir dans l'image ci-dessus, un groupe peut ou ne peut pas afficher une légende. Si vous avez besoin d’afficher une légende, au moment du design, dans la fenêtre Propriétés, cliquez sur Text et tapez une chaîne. Pour le faire par programmation, affectez une chaîne à la propriété Text du contrôle Zone de Groupe. Voici un exemple :

private void InitializeComponent()  
{          
		grpHolder = new GroupBox();          
		grpHolder.Left   = 22;          
		grpHolder.Top    = 18;          
		grpHolder.Width  = 120;          
		grpHolder.Height = 58;          
		grpHolder.Text = "Cup Holder";
            
		Controls.Add(grpHolder);  
}

Cela donnerait :

Group Box

La Zone de Groupe comme un conteneur

En plus de servir un délimiteur d'une zone sur une forme, une Zone de Groupe peut également servir un conteneur. C'est-à-dire, une Zone de Groupe peut transporter ou contenir d'autres conteneurs. Comme tel, vous pouvez créer un contrôle et l'ajouter à sa collection de contrôles. Lorsque vous ajoutez un contrôle à une zone de groupe, que ce soit au moment de l'exécution ou de la conception, l'emplacement que vous spécifiez l’est par rapport à la zone de groupe et non à l'écran. Parce que la zone de groupe agira en tant que parent, c'est sa zone cliente qui est considérée comme l'emplacement des témoins de son enfant.

Voici un exemple d'ajout d'un contrôle enfant d'une zone de groupe :

private void InitializeComponent()  
{          
		grpHolder = new GroupBox();          
		grpHolder.Left   = 22;          
		grpHolder.Top    = 18;          
		grpHolder.Width  = 120;          
		grpHolder.Height = 58;          
		grpHolder.Text = "Cup Holder";            
 
		Button btnDone = new Button();         
		btnDone.Left = 22;          
		btnDone.Top  = 24;          
		grpHolder.Controls.Add(btnDone);            
 
		Controls.Add(grpHolder);  
}

Cela produirait :

The group box as a container

Le Redimensionnement automatiquement d'une Zone de Groupe

Comme une zone de groupe peut servir d'un conteneur de contrôle, au moment du design (et à l'exécution), vous pouvez y ajouter les contrôles souhaités. Voici un exemple :

Group Box

Notez qu'il est possible d'avoir un contrôle dont la taille de certaines de ses sections peut être cachée. Pour accueillir les témoins placés dans une zone de groupe, vous pouvez changer les dimensions du conteneur afin de révéler les pièces cachées de ses contrôles. Pour cela, la classe GroupBox est équipée de la propriété AutoSize de type Boolean. La valeur par défaut de la propriété GroupBox.AutoSize est false. Si vous la définissez sur true, la zone de groupe serait dimensionnée et tous ses contrôles doivent apparaître :

Donner le focus à une Zone de Groupe

Si vous avez terminé la programmation dans Win32, vous sauriez que le système d'exploitation Microsoft Windows classifie la zone de groupe comme un contrôle statique. Une des caractéristiques des contrôles statiques est qu'ils ne peuvent pas recevoir le focus. En d'autres termes, vous ne pouvez pas cliquer effectivement sur une zone de groupe et elle ne peut pas indiquer qu'elle a reçu le focus. Dans le même temps, dans le .NET Framework, la classe GroupBox est équipée des propriétés TabStop et TabIndex, qui suggère que, en appuyant sur la touche Tab lors de l'utilisation d'un formulaire qui contient une zone de groupe, la zone de groupe doit recevoir le focus à un moment donné. Cependant, parce que la zone de groupe est un contrôle statique, elle ne peut pas recevoir le focus. Que se passe-t-il réellement ? C'est que, chaque fois qu'une zone de groupe est censée recevoir, elle transfère le focus à son premier ou seul contrôle.

L'Utilisation d'un Mnemonic

Comme déjà dit, une zone de groupe peut être équipée d'une légende, qui est créée en affectant une chaîne à sa propriété Text. Un mnémonique est un caractère (ou une lettre) que l'utilisateur peut utiliser pour accéder à une zone de groupe. Pour créer un mnémonique, précédez d'un caractère (ou d'une lettre) de sa légende &. Voici un exemple :

The mnemonic of a group box
The mnemonic of a group box

En utilisant le mnémonique, l'utilisateur peut appuyer sur Alt et le caractère souligné pour donner le focus à un contrôle à l'intérieur de la zone de groupe.

L'Introduction au Panneau de Contrôle

 

Description

Le panneau est un objet rectangulaire qui peut fournir différents services utiles pour la conception de l'application. Un panneau permet de concevoir des formulaires attractifs en ajustant les couleurs et les autres propriétés. Un panneau peut également être utilisé comme délimiteur pour les objets qui se comportent comme un groupe de contrôle. Un exemple serait un ensemble de boutons radio.

En tant que membre de la famille des conteneurs de contrôle, un panneau peut servir à retenir ou à effectuer les contrôles placés sur lui. Lorsqu'un panneau se déplace, il le fait avec les contrôles placés sur lui. Lorsqu'un panneau est visible, les contrôles placés sur lui peuvent être visibles également, sauf s’ils ont leur propre visibilité supprimée. Lorsqu'un panneau est masqué, ses contrôles enfants sont masqués aussi, indépendamment de leur statut de visibilité. Cette propriété s'applique également à la disponibilité du panneau.

Les Panneaux ne sont pas transparents. Par conséquent, leur couleur peut être modifiée pour contrôler leur représentation en arrière-plan. Un panneau est un contrôle complet avec les propriétés, méthodes et événements.

La Création d'un panneau

Pour ajouter un panneau à un conteneur, vous pouvez cliquer sur le bouton de panneau de la boîte à outils et cliquez sur l'emplacement souhaité sur le conteneur. Contrairement à l'écran, lors de la conception, un panneau doit essentiellement être positionné sur un autre conteneur qui serait un formulaire ou un autre panneau.

Pour créer par programmation un panneau, déclarez une poignée de Panel, allouez de la mémoire à l'aide de l'opérateur new et ajoutez-le à son parent. Voici un exemple :

using System;  
using System.Drawing;  
using System.Windows.Forms;    
 
public class Exercise : System.Windows.Forms.Form  
{      
	Panel pnlContainer;
 
	public Exercise()      
	{          
		InitializeComponent();      
	}        
 
 
	private void InitializeComponent()      
	{          
		Text     = "Domain Configuration";          
		Width    = 320;          
		Height   = 210;          
		Location = System.Drawing.Point(140, 100);          
		StartPosition = FormStartPosition.CenterScreen;            
 
		pnlContainer = new Panel();          
		pnlContainer.Location = Point(20, 20);          
		pnlContainer.Size = System.Drawing.Size(100, 60);          
		Controls.Add(pnlContainer);      
	}  
}    
 
public class Program  
{      
	static int Main()      
	{          
		System.Windows.Forms.Application.Run(new Exercise());          
		return 0;      
	}  
}

Les Caractéristiques d'un contrôle Panel

 

Introduction

Comme déjà dit, un panneau est un objet créé à partir de la classe Panel. Cette classe est dérivée de la classe de ScrollableControl où il obtient ses principales caractéristiques. La classe ScrollableControl elle-même est dérivée de la classe Control. Sur cette base, une propriété qui est très utilisée sur les panneaux (et formulaires) est la couleur. Si vous modifiez la propriété BackColor, la nouvelle couleur couvrirait le visage du panneau.

Le style de bordure

Par défaut, un objet du panneau est établi sans bordures. Si vous souhaitez y ajouter des bordures, utilisez la propriété BorderStyle. Il fournit trois valeurs que vous pouvez définir dans la fenêtre Propriétés : None, FixedSingle, et Fixed3D et leurs effets sont comme suit :

 

None

FixedSingle

Fixed3D

Design

A panel with a None value as BorderStyle

A panel with a FixedSingle value as BorderStyle

A panel with a Fixed3Dvalue as BorderStyle

Run

Par programmation spécifiez le style de bordure, affectez la valeur souhaitée pour la propriété Panel.BorderStyle. Voici un exemple :

private void InitializeComponent()  
{          
		Text     = "Domain Configuration";          
		Width    = 320;          
		Height   = 210;          
		Location = System.Drawing.Point(140, 100);          
		StartPosition = FormStartPosition.CenterScreen;            
 
		pnlContainer = new Panel();          
		pnlContainer.Location = Point(20, 20);          
		pnlContainer.Size = System.Drawing.Size(100, 60);          
		pnlContainer.BorderStyle = BorderStyle.Fixed3D;            
 
		Controls.Add(pnlContainer);  
}

Un panneau peut être utilisé comme un bouton, auquel cas l'utilisateur devra cliquer dessus pour lancer une action.

Le Panneau de défilement

Un panneau est l'un des meilleurs conteneurs de contrôle que vous pouvez utiliser. Outre les caractéristiques esthétiques, le panneau permet de faire défiler, verticalement et/ou horizontalement sur son corps. Le défilement permet de donner l'accès à l'utilisateur aux parties cachées qui vont au-delà de la zone client (visible) du panneau. Voici un exemple :

Panel


Pour vous aider avec les barres de défilement, la classe Panel est équipée d'une propriété nommée AutoScroll. En réalité, cette propriété est héritée de la classe ScrollableControl. Si vous souhaitez une base de contrôle ScrollableControl pour afficher les barres de défilement, définissez cette propriété sur true. Les étapes pour avoir les barres de défilement sur un panneau sont :

  1. Ajoutez un panneau à un formulaire et spécifiez les caractéristiques que vous souhaitez. Vous devez également définir la propriété AutoScroll sur true

  2. Ajoutez une zone de l'image Picture Boxsur le panneau ci-dessus (de sorte que le panneau soit son parent). Vous devez manuellement l’aligner à gauche de son conteneur afin que le coin supérieur gauche du panneau coïncide avec le coin supérieur gauche du panneau. Définissez la propriété Dock de la zone de cette image sur None. Définissez ses SizeMode à AutoSize. Si vous (et la plupart du temps vous allez) souhaitez par programmation gérer la zone de l'image, donnez-lui un nom reconnaissable que vous pouvez consulter dans votre code.

Une des propriétés qui influe sur le comportement des barres de défilement est AutoScrollMargin. Cette propriété contrôle la zone à l'intérieur de laquelle le défilement peut se produire. Cette propriété est de type taille, ce qui signifie qu'elle contient la largeur et la hauteur de la zone de liste déroulante. Sa valeur par défaut est (0, 0), ce qui signifie que toute la zone client du parent sera utilisée. Si vous limitez la zone, modifiez la valeur de cette propriété.

Introduction au Container Split

 

Description

Un séparateur est un objet qui divise un conteneur en deux sections verticales ou horizontales. Il permet à une section d'être élargie, restreinte, accrue ou diminuée tandis que l'autre section est réduite, élargie, rétrécie ou accentuée. Selon ce comportement, une section reçoit plus d'espace, tandis que l'autre diminue. Vous êtes probablement familiarisé avec cette description, si vous avez utilisé Windows Explorer. Dans la plupart des cas, un séparateur est mis en évidence en affichant une barre qui divise les sections.

Avant d'utiliser un séparateur, l'utilisateur peut positionner la souris de la barre. Le curseur se changerait en horizontale ou en une double-flèche verticale, en fonction de l'orientation de la séparation. Voici un exemple :

Splitter

Pour utiliser le séparateur, l'utilisateur peut cliquer sur sa barre et la faire glisser à gauche, à droite, en haut ou en bas, en fonction de l'orientation de la séparation et ce que l'utilisateur essaie d'accomplir. Après obtention de la position souhaitée, l'utilisateur peut relâcher le bouton de la souris.

La Création d'un Splitter

Pour soutenir les splitters, le .NET Framework fournit le conteneur de séparation. Il est représenté dans la bibliothèque par la classe SplitContainer et dans la boîte à outils par le SplitContainer object. Pour ajouter un conteneur de fractionnement à votre application, dans la section de conteneurs de la boîte à outils, cliquez sur SplitContainer object et cliquez sur une forme de votre application. Une fois que vous faites cela, un objet appelé un conteneur split remplit le formulaire, se divise en deux et devient équipé de deux objets nommés Panel1 et Panel2. En réalité, un conteneur de séparation est un objet de deux panneaux séparés par une barre. Dans chaque panneau, vous pouvez ajouter les contrôles comme bon vous semble. Un contrôle ajouté à l'un des panneaux deviendrait un enfant de ce panneau.

Un conteneur de fractionnement lui-même ressemble à un contrôle de panneau. Comme décrit ci-dessus, lorsque vous l’avez ajouté, il définit automatiquement sa propriété Dock à fond. Cela signifie que, après avoir ajouté un conteneur de split, vous auriez des difficultés d’ajouter un objet à l'écran mais à l'extérieur du conteneur de fractionnement. Par conséquent, si vous avez l'intention d'avoir des objets qui n'appartiennent pas au conteneur de fractionnement, vous devez effectuer certaines actions préalables. En général, vous devez tout d'abord ajouter un panneau (ou un autre conteneur) à un formulaire. Par exemple, pour un groupe de contrôle dans la partie supérieure de l'écran, vous pouvez tout d'abord ajouter un panneau et définir sa propriété Dock vers le Top :

A Panel Added to a Form

Ensuite, lorsque vous ajoutez un conteneur de séparation, il peut utiliser uniquement la zone restante du formulaire :

Split Container

De la même façon, avant d'ajouter un conteneur de fractionnement, vous devez préparer le formulaire pour les objets que vous souhaitez placer sur l'écran, mais qui n'auraient pas appartenu au conteneur de séparation.

Seulement, vous pouvez avoir un conteneur scindé en deux parties, vous pouvez avoir plus de deux sections redimensionnables. Pour ce faire, après l'ajout d'un conteneur de fractionnement, ajoutez un autre conteneur de séparation à l'un des panneaux d'un conteneur de fractionnement existant.

Les Caractéristiques d'un conteneur de Split

 

Introduction

Après avoir ajouté'un conteneur de fractionnement à un formulaire, il peut devenir difficile pour le sélectionner dans le formulaire. Pour sélectionner, utilisez la zone de liste déroulante au-dessus de la fenêtre Propriétés. Si vous cliquez sur une zone du conteneur split, le panneau correspondant devient sélectionné et vous pouvez modifier ses caractéristiques à l'aide de la fenêtre mais vous ne pouvez ni déplacer ni supprimer un panneau du conteneur de fractionnement.

Comme déjà dit, un conteneur de fractionnement est fait de deux panneaux séparés par une barre. Chaque panneau est équipé avec les caractéristiques nécessaires qui facilitent son rôle comme son propre conteneur, y compris la couleur d'arrière-plan de l'image d'arrière-plan, la possibilité d'afficher les barres de défilement, etc..

Comme nous l'avons déjà mentionné, après l'ajout d'un conteneur de fractionnement d'un formulaire, il définit sa propriété Dock à Fill. C'est le comportement par défaut. Si vous ne souhaitez pas que le conteneur remplisse la zone disponible de l'écran, vous pouvez modifier la valeur de sa propriété Dock.

L'arrière-plan d'un conteneur de Split

Comme un contrôle visuel, vous pouvez rendre un conteneur de séparation plus attrayant en peinture de son arrière-plan avec une image. Pour cela, la classe SplitContainer est équipée d'une propriété nommée BackgroundImage. Cette propriété s'attend à un fichier image ou son emplacement. L'image d'arrière-plan apparaît sur le séparateur. Lorsque vous définissez ou modifiez l'image d'arrière-plan du conteneur split, il déclenche un événement BackgroundImageChanged. Cet événement est de type EventArgs.

Puisque chaque panneau a la possibilité de montrer une image et d'organiser leurs contrôles, leurs origines reprennent la priorité sur l'arrière-plan du conteneur split.

La taille du Splitter

Dans notre description, nous avons vu qu'un conteneur de split a été fait d'une barre de séparation. Cette barre s'affiche avec une largeur de 4 pixels. Si vous le souhaitez, vous pouvez la rendre supérieure. Cette caractéristique est contrôlée par la propriété SplitterWidth. Sa valeur par défaut est de 4 pixels. Pour la modifier, affectez la valeur entière de votre choix à la propriété SplitContainer de SplitterWidth.

L'orientation du Splitter

Par défaut, lorsque vous ajoutez un nouveau conteneur de fractionnement d'un formulaire, il se divise avec la barre verticale. Cela permet de changer la largeur des panneaux. Alternativement, si vous souhaitez que le contrôle soit divisé horizontalement, vous devez modifier l'orientation de la barre. Pour cela, la classe SplitContainer est équipée d'une propriété nommée Orientation. La valeur par défaut de la propriété SplitContainer.Orientation est verticale. Pour diviser le conteneur horizontalement, définissez cette propriété à Horizontal.

Le Déplacement du Splitter

Comme mentionné dans notre description, pour utiliser un splitter, l'utilisateur peut positionner la souris sur la barre et la faire glisser dans la direction souhaitée. Cela est autorisé par défaut et est contrôlé par la propriété Boolean IsSplitterFixed dont la valeur par défaut est false. Alors que l'utilisateur déplace le splitter, le conteneur de fractionnement déclenche un événement SplitterMoving. Cet événement est géré par la classe SplitterCancelEventArgs. Cette classe contient les coordonnées x et y du conteneur split aussi bien les coordonnées x et y de la souris. Une fois que l'utilisateur a déplacé le séparateur, le conteneur split déclenche un événement SplitterMoved. Cet événement est géré par la classe SplitterEventArgs qui donne des coordonnées x et y du séparateur.

Pour empêcher l'utilisateur de faire glisser la barre, vous pouvez définir le SplitContainer. Propriété IsSplitterFixed sur true. Si vous faites cela, lorsque l'utilisateur place la souris sur la barre, le curseur garderait sa forme de flèche de pointage.

L'augmentation du Splitter

Si la propriété IsSplitterFixed est définie sur false, ce qui est la valeur par défaut, l'utilisateur peut faire glisser la barre pour redimensionner les panneaux. Par défaut, lorsque l'utilisateur fait glisser la barre, il passe par un pixel. Vous pouvez le faire bouger plus vite que cela. Cette caractéristique est contrôlée par la propriété SplitterIncrement dont la valeur par défaut est 1 (pixel). Pour afficher la barre de déplacement par plus d'un pixel, affectez la valeur souhaitée à la propriété SplitterIncrement.

La fixation d'un Panneau

Après avoir ajouté un conteneur de fractionnement et si la propriété Dock du contrôle est une valeur autre que None, lorsque l'utilisateur redimensionne l'écran, la bordure du conteneur split suit le mouvement de la souris et la barre se déplace également par un certain taux pour redimensionner le panneau opposé :


Si vous le souhaitez, vous pouvez corriger un panneau de sorte que, lorsque le formulaire est redimensionné, ce panneau garderait sa taille par la barre sans se déplacer. Pour cela, la classe SplitContainer est équipée d'une propriété nommée FixedPanel. Vous pouvez sélectionner un des panneaux comme la valeur de cette propriété.

ApplicationApplication : L'exécution d'une application

  1. Fermez Microsoft Visual c# Express Edition ou Microsoft Visual Studio

  2. Lorsqu'on vous demande si vous souhaitez enregistrer, cliquez sur non

 
 
 
 

Précédent Copyright © 2009-2011, yevol.com Suivant