Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Classe CreateParams
Collapse the table of content
Expand the table of content
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale

Classe CreateParams

Incapsula le informazioni richieste durante la creazione di un controllo.

System.Object
  System.Windows.Forms.CreateParams

Spazio dei nomi:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public class CreateParams

Il tipo CreateParams espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoCreateParamsInizializza una nuova istanza della classe CreateParams.
In alto

  NomeDescrizione
Proprietà pubblicaCaptionOttiene o imposta il testo iniziale del controllo.
Proprietà pubblicaClassNameOttiene o imposta il nome della classe Windows da cui derivare il controllo.
Proprietà pubblicaClassStyleOttiene o imposta una combinazione bit per bit di valori di stile di classe.
Proprietà pubblicaExStyleOttiene o imposta una combinazione bit per bit dei valori dello stile esteso della finestra.
Proprietà pubblicaHeightOttiene o imposta l’altezza iniziale del controllo.
Proprietà pubblicaParamOttiene o imposta le informazioni aggiuntive sui parametri richieste per la creazione del controllo.
Proprietà pubblicaParentOttiene o imposta l'elemento padre del controllo.
Proprietà pubblicaStyleOttiene o imposta una combinazione bit per bit dei valori dello stile di finestra.
Proprietà pubblicaWidthOttiene o imposta la larghezza iniziale del controllo.
Proprietà pubblicaXOttiene o imposta la posizione sinistra iniziale del controllo.
Proprietà pubblicaYOttiene o imposta la posizione superiore dell'ubicazione iniziale del controllo.
In alto

  NomeDescrizione
Metodo pubblicoEquals(Object)Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protettoFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoGetHashCodeFunge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Esegue l'override di Object.ToString()).
In alto

Le informazioni contenute in un oggetto CreateParams possono essere utilizzate per passare informazioni su stato e aspetto iniziali del controllo. La maggior parte dei controlli derivati Control sottopone a override la proprietà CreateParams per passare i valori appropriati o includere informazioni aggiuntive nell'oggetto CreateParams.

Per ulteriori informazioni sulla creazione dei parametri di controllo, vedere le funzioni CreateWindow e CreateWindowEx e la documentazione sulla struttura CREATESTRUCT nella documentazione di Windows Platform SDK contenuta in MSDN Library.

NotaNota

Le costanti utilizzate per impostare le proprietà Style, ExStyle e ClassStyle sono definite nel file di intestazione Winuser.h, il quale viene installato da Platform SDK o da Visual Studio.

Nell'esempio di codice seguente, viene creata una classe derivata Button denominata MyIconButton e viene fornita l'implementazione necessaria affinché il pulsante visualizzi un'icona, anziché un'immagine. La proprietà CreateParams viene estesa e viene aggiunto un valore alla proprietà Style, tale che nel pulsante venga visualizzata un'Icon, anziché un'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);

}


Nell'esempio di codice seguente, viene creata un'istanza di un controllo Button standard e una del controllo derivato, MyIconButton, creata nell'esempio precedente. Per questo esempio è prevista l'esistenza di un file Icon denominato Default.ico, situato nella stessa posizione occupata nell'applicazione. Quando l'applicazione viene avviata, l'icona Default viene visualizzata nel pulsante MyIconButton. Se l'icona Default non è presente, sul pulsante non viene visualizzato nulla. Quando si fa clic sull'oggetto Button standard, viene visualizzata una finestra OpenFileDialog che consente di selezionare una nuova icona da visualizzare sull'oggetto 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

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft