Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

CreateParams, classe

Encapsule les informations nécessaires pour créer un contrôle.

System.Object
  System.Windows.Forms.CreateParams

Espace de noms :  System.Windows.Forms
Assembly :  System.Windows.Forms (dans System.Windows.Forms.dll)

public class CreateParams

Le type CreateParams expose les membres suivants.

  NomDescription
Méthode publiqueCreateParamsInitialise une nouvelle instance de la classe CreateParams.
Début

  NomDescription
Propriété publiqueCaptionObtient ou définit le texte initial du contrôle.
Propriété publiqueClassNameObtient ou définit le nom de la classe Windows dont doit dériver le contrôle.
Propriété publiqueClassStyleObtient ou définit une combinaison d'opérations de bits de valeurs de style de classe.
Propriété publiqueExStyleObtient ou définit une combinaison d'opérations de bits de valeurs de style de fenêtre étendu.
Propriété publiqueHeightObtient ou définit la hauteur initiale du contrôle.
Propriété publiqueParamObtient ou définit les informations sur les paramètres supplémentaires nécessaires pour créer le contrôle.
Propriété publiqueParentObtient ou définit le parent du contrôle.
Propriété publiqueStyleObtient ou définit une combinaison d'opérations de bits de valeurs de style de fenêtre.
Propriété publiqueWidthObtient ou définit la largeur initiale du contrôle.
Propriété publiqueXObtient ou définit la position gauche initiale du contrôle.
Propriété publiqueYObtient ou définit la position supérieure de l'emplacement initial du contrôle.
Début

  NomDescription
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actif. (Substitue Object.ToString().)
Début

Les informations contenues dans CreateParams peuvent être utilisées pour passer des informations relatives à l'état et à l'aspect initiaux d'un contrôle. La plupart des contrôles dérivés de Control substituent la propriété CreateParams pour passer les valeurs appropriées ou inclure des informations supplémentaires dans CreateParams.

Pour plus d'informations sur la création de paramètres de contrôle, consultez les fonctions CreateWindow et CreateWindowEx et la documentation de structure CREATESTRUCT dans la documentation de référence du Kit de développement Platform SDK de Windows située dans MSDN Library.

RemarqueRemarque

Les constantes utilisées pour définir les propriétés Style, ExStyle et ClassStyle sont définies dans le fichier d'en-tête Winuser.h. Ce fichier est installé par le Kit de développement Platform SDK ou Visual Studio.

L'exemple de code suivant crée une classe dérivée de Button nommée MyIconButton et fournit l'implémentation nécessaire au bouton pour afficher une icône plutôt qu'une image. La propriété CreateParams est étendue et une valeur est ajoutée à la propriété Style, ce qui force le bouton à afficher Icon plutôt que Image.


using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.IO;
using System.Security.Permissions;

[SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)]
public class MyIconButton : Button
{

    private Icon icon;

    public MyIconButton()
    {
        // Set the button's FlatStyle property.
        FlatStyle = FlatStyle.System;
    }

    public MyIconButton(Icon ButtonIcon)
        : this()
    {
        // Assign the icon to the private field.   
        this.icon = ButtonIcon;


        // Size the button to 4 pixels larger than the icon.
        this.Height = icon.Height + 4;
        this.Width = icon.Width + 4;
    }

    protected override CreateParams CreateParams
    {
        get
        {
            new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();

            // Extend the CreateParams property of the Button class.
            CreateParams cp = base.CreateParams;
            // Update the button Style.
            cp.Style |= 0x00000040; // BS_ICON value

            return cp;
        }
    }

    public Icon Icon
    {
        get
        {
            return icon;
        }

        set
        {
            icon = value;
            UpdateIcon();
            // Size the button to 4 pixels larger than the icon.
            this.Height = icon.Height + 4;
            this.Width = icon.Width + 4;
        }
    }

    [SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)]
    protected override void OnHandleCreated(EventArgs e)
    {
        base.OnHandleCreated(e);

        // Update the icon on the button if there is currently an icon assigned to the icon field.
        if (icon != null)
        {
            UpdateIcon();
        }
    }

    private void UpdateIcon()
    {
        IntPtr iconHandle = IntPtr.Zero;

        // Get the icon's handle.
        if (icon != null)
        {
            iconHandle = icon.Handle;
        }

        // Send Windows the message to update the button. 
        SendMessage(Handle, 0x00F7 /*BM_SETIMAGE value*/, 1 /*IMAGE_ICON value*/, (int)iconHandle);
    }


    // Import the SendMessage method of the User32 DLL.   
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

}


L'exemple de code suivant crée une instance d'un contrôle Button standard et une instance du contrôle dérivé, MyIconButton, créé dans l'exemple ci-dessus. Cet exemple nécessite un fichier Icon nommé Default.ico au même emplacement que l'application. Lorsque l'application démarre, l'icône Default est affichée sur le bouton MyIconButton. Si l'icône Default n'est pas présente, la face du bouton est vide. Lorsqu'un clic est effectué sur le Button standard, une zone OpenFileDialog apparaît, afin que vous puissiez sélectionner une nouvelle icône à afficher sur MyIconButton.


public class MyApplication : Form
{
    private MyIconButton myIconButton;
    private Button stdButton;
    private OpenFileDialog openDlg;

    static void Main()
    {
        Application.Run(new MyApplication());
    }

    public MyApplication()
    {
        try
        {
            // Create the button with the default icon.
            myIconButton = new MyIconButton(new Icon(Application.StartupPath + "\\Default.ico"));
        }
        catch (Exception ex)
        {
            // If the default icon does not exist, create the button without an icon.
            myIconButton = new MyIconButton();
            Debug.WriteLine(ex.ToString());
        }
        finally
        {
            stdButton = new Button();

            // Add the Click event handlers.
            myIconButton.Click += new EventHandler(this.myIconButton_Click);
            stdButton.Click += new EventHandler(this.stdButton_Click);

            // Set the location, text and width of the standard button.
            stdButton.Location = new Point(myIconButton.Location.X, myIconButton.Location.Y + myIconButton.Height + 20);
            stdButton.Text = "Change Icon";
            stdButton.Width = 100;

            // Add the buttons to the Form.
            this.Controls.Add(stdButton);
            this.Controls.Add(myIconButton);
        }

    }

    private void myIconButton_Click(object Sender, EventArgs e)
    {
        // Make sure MyIconButton works.
        MessageBox.Show("MyIconButton was clicked!");
    }

    private void stdButton_Click(object Sender, EventArgs e)
    {
        // Use an OpenFileDialog to allow the user to assign a new image to the derived button.
        openDlg = new OpenFileDialog();
        openDlg.InitialDirectory = Application.StartupPath;
        openDlg.Filter = "Icon files (*.ico)|*.ico";
        openDlg.Multiselect = false;
        openDlg.ShowDialog();

        if (openDlg.FileName != "")
        {
            myIconButton.Icon = new Icon(openDlg.FileName);
        }
    }

}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft