Partager via


DrawToolTipEventArgs.AssociatedControl Propriété

Définition

Obtient le contrôle pour lequel ToolTip est dessiné.

public:
 property System::Windows::Forms::Control ^ AssociatedControl { System::Windows::Forms::Control ^ get(); };
public System.Windows.Forms.Control AssociatedControl { get; }
public System.Windows.Forms.Control? AssociatedControl { get; }
member this.AssociatedControl : System.Windows.Forms.Control
Public ReadOnly Property AssociatedControl As Control

Valeur de propriété

Control qui est associé au ToolTip lorsque l'événement Draw se produit. La valeur de retour sera null si l'info-bulle n'est pas associée à un contrôle.

Exemples

L’exemple de code suivant montre comment dessiner personnalisé le ToolTip. L’exemple crée un ToolTip et l’associe à trois Button contrôles situés sur le Form. L’exemple définit la OwnerDraw propriété sur true et gère l’événement Draw . Dans le Draw gestionnaire d’événements, le ToolTip est dessiné différemment selon le ToolTip bouton pour lequel est affiché comme indiqué par la DrawToolTipEventArgs.AssociatedControl propriété.

L’exemple de code suivant montre comment utiliser la AssociatedControl propriété . Consultez la vue d’ensemble DrawToolTipEventArgs de la classe pour obtenir l’exemple de code complet.

   // Handles drawing the ToolTip.
private:
   void toolTip1_Draw( System::Object^ /*sender*/, System::Windows::Forms::DrawToolTipEventArgs^ e )
   {
      // Draw the ToolTip differently depending on which 
      // control this ToolTip is for.
      // Draw a custom 3D border if the ToolTip is for button1.
      if ( e->AssociatedControl == button1 )
      {
         // Draw the standard background.
         e->DrawBackground();
         
         // Draw the custom border to appear 3-dimensional.
         array<Point>^ temp1 = {Point(0,e->Bounds.Height - 1),Point(0,0),Point(e->Bounds.Width - 1,0)};
         e->Graphics->DrawLines( SystemPens::ControlLightLight, temp1 );
         array<Point>^ temp2 = {Point(0,e->Bounds.Height - 1),Point(e->Bounds.Width - 1,e->Bounds.Height - 1),Point(e->Bounds.Width - 1,0)};
         e->Graphics->DrawLines( SystemPens::ControlDarkDark, temp2 );
         
         // Specify custom text formatting flags.
         TextFormatFlags sf = static_cast<TextFormatFlags>(TextFormatFlags::VerticalCenter | TextFormatFlags::HorizontalCenter | TextFormatFlags::NoFullWidthCharacterBreak);
         
         // Draw the standard text with customized formatting options.
         e->DrawText( sf );
      }
      // Draw a custom background and text if the ToolTip is for button2.
      else
      
      // Draw a custom background and text if the ToolTip is for button2.
      if ( e->AssociatedControl == button2 )
      {
         // Draw the custom background.
         e->Graphics->FillRectangle( SystemBrushes::ActiveCaption, e->Bounds );
         
         // Draw the standard border.
         e->DrawBorder();
         
         // Draw the custom text.
         // The using block will dispose the StringFormat automatically.
         StringFormat^ sf = gcnew StringFormat;
         try
         {
            sf->Alignment = StringAlignment::Center;
            sf->LineAlignment = StringAlignment::Center;
            sf->HotkeyPrefix = System::Drawing::Text::HotkeyPrefix::None;
            sf->FormatFlags = StringFormatFlags::NoWrap;
            System::Drawing::Font^ f = gcnew System::Drawing::Font( "Tahoma",9 );
            try
            {
               e->Graphics->DrawString( e->ToolTipText, f, SystemBrushes::ActiveCaptionText, e->Bounds, sf );
            }
            finally
            {
               if ( f )
                  delete safe_cast<IDisposable^>(f);
            }

         }
         finally
         {
            if ( sf )
               delete safe_cast<IDisposable^>(sf);
         }
      }
      // Draw the ToolTip using default values if the ToolTip is for button3.
      else if ( e->AssociatedControl == button3 )
      {
         e->DrawBackground();
         e->DrawBorder();
         e->DrawText();
      }
   }
// Handles drawing the ToolTip.
private void toolTip1_Draw(System.Object sender, 
    System.Windows.Forms.DrawToolTipEventArgs e)
{
    // Draw the ToolTip differently depending on which 
    // control this ToolTip is for.
    // Draw a custom 3D border if the ToolTip is for button1.
    if (e.AssociatedControl == button1)
    {
        // Draw the standard background.
        e.DrawBackground();

        // Draw the custom border to appear 3-dimensional.
        e.Graphics.DrawLines(SystemPens.ControlLightLight, new Point[] {
            new Point (0, e.Bounds.Height - 1), 
            new Point (0, 0), 
            new Point (e.Bounds.Width - 1, 0)
        });
        e.Graphics.DrawLines(SystemPens.ControlDarkDark, new Point[] {
            new Point (0, e.Bounds.Height - 1), 
            new Point (e.Bounds.Width - 1, e.Bounds.Height - 1), 
            new Point (e.Bounds.Width - 1, 0)
        });

        // Specify custom text formatting flags.
        TextFormatFlags sf = TextFormatFlags.VerticalCenter |
                             TextFormatFlags.HorizontalCenter |
                             TextFormatFlags.NoFullWidthCharacterBreak;

        // Draw the standard text with customized formatting options.
        e.DrawText(sf);
    }
    // Draw a custom background and text if the ToolTip is for button2.
    else if (e.AssociatedControl == button2)
    {
        // Draw the custom background.
        e.Graphics.FillRectangle(SystemBrushes.ActiveCaption, e.Bounds);

        // Draw the standard border.
        e.DrawBorder();

        // Draw the custom text.
        // The using block will dispose the StringFormat automatically.
        using (StringFormat sf = new StringFormat())
        {
            sf.Alignment = StringAlignment.Center;
            sf.LineAlignment = StringAlignment.Center;
            sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.None;
            sf.FormatFlags = StringFormatFlags.NoWrap;
            using (Font f = new Font("Tahoma", 9))
            {
                e.Graphics.DrawString(e.ToolTipText, f, 
                    SystemBrushes.ActiveCaptionText, e.Bounds, sf);
            }
        }
    }
    // Draw the ToolTip using default values if the ToolTip is for button3.
    else if (e.AssociatedControl == button3)
    {
        e.DrawBackground();
        e.DrawBorder();
        e.DrawText();
    }
}
' Handles drawing the ToolTip.
Private Sub toolTip1_Draw(ByVal sender As System.Object, _
    ByVal e As DrawToolTipEventArgs) Handles toolTip1.Draw
    ' Draw the ToolTip differently depending on which 
    ' control this ToolTip is for.

    ' Draw a custom 3D border if the ToolTip is for button1.
    If (e.AssociatedControl Is button1) Then
        ' Draw the standard background.
        e.DrawBackground()

        ' Draw the custom border to appear 3-dimensional.
        e.Graphics.DrawLines( _
            SystemPens.ControlLightLight, New Point() { _
            New Point(0, e.Bounds.Height - 1), _
            New Point(0, 0), _
            New Point(e.Bounds.Width - 1, 0)})
        e.Graphics.DrawLines( _
            SystemPens.ControlDarkDark, New Point() { _
            New Point(0, e.Bounds.Height - 1), _
            New Point(e.Bounds.Width - 1, e.Bounds.Height - 1), _
            New Point(e.Bounds.Width - 1, 0)})

        ' Specify custom text formatting flags.
        Dim sf As TextFormatFlags = TextFormatFlags.VerticalCenter Or _
                             TextFormatFlags.HorizontalCenter Or _
                             TextFormatFlags.NoFullWidthCharacterBreak

        ' Draw standard text with customized formatting options.
        e.DrawText(sf)
    ElseIf (e.AssociatedControl Is button2) Then
        ' Draw a custom background and text if the ToolTip is for button2.

        ' Draw the custom background.
        e.Graphics.FillRectangle(SystemBrushes.ActiveCaption, e.Bounds)

        ' Draw the standard border.
        e.DrawBorder()

        ' Draw the custom text.
        Dim sf As StringFormat = New StringFormat
        Try
            sf.Alignment = StringAlignment.Center
            sf.LineAlignment = StringAlignment.Center
            sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.None
            sf.FormatFlags = StringFormatFlags.NoWrap

            Dim f As Font = New Font("Tahoma", 9)
            Try
                e.Graphics.DrawString(e.ToolTipText, f, _
                    SystemBrushes.ActiveCaptionText, _
                    RectangleF.op_Implicit(e.Bounds), sf)
            Finally
                f.Dispose()
            End Try
        Finally
            sf.Dispose()
        End Try
    ElseIf (e.AssociatedControl Is button3) Then
        ' Draw the ToolTip using default values if the ToolTip is for button3.
        e.DrawBackground()
        e.DrawBorder()
        e.DrawText()
    End If
End Sub

Remarques

Étant donné que le ToolTip peut être associé à plusieurs contrôles par le biais de la ToolTip.SetToolTip méthode, la AssociatedControl propriété peut être utilisée pour déterminer le contrôle auquel l’événement Draw est associé. Cela est utile si vous souhaitez effectuer une personnalisation d’info-bulle différente en fonction du contrôle associé.

S’applique à

Voir aussi