11

プロジェクトで ToolTip コントロールを使用しています。背景色を赤に設定したい。ownerdraw プロパティを true に、背景色を赤に変更しました。しかし、結果はありません。なにか提案を?

よろしく、スクポール。

4

3 に答える 3

23

次のプロパティを設定します。

yourTooltip.OwnerDraw = true; 
yourTooltip.BackColor = System.Drawing.Color.Red;

次に、Draw イベントでこれを使用します。

private void yourTooltip_Draw(object sender, DrawToolTipEventArgs e)
{
    e.DrawBackground();
    e.DrawBorder();
    e.DrawText();
}
于 2012-10-20T17:43:59.357 に答える
10

イベントをツールストリップに追加し、OwnerDraw を true に設定します。

public Form1() {
     InitializeComponent();
     toolTip1.OwnerDraw = true;
     toolTip1.Draw += new DrawToolTipEventHandler(toolTip1_Draw);          
 }

次に、Draw イベントのメソッドを追加します。

void toolTip1_Draw(object sender, DrawToolTipEventArgs e) {
     Font f = new Font("Arial", 10.0f);
     toolTip1.BackColor = System.Drawing.Color.Red;
     e.DrawBackground();
     e.DrawBorder();
     e.Graphics.DrawString(e.ToolTipText, f, Brushes.Black, new PointF(2, 2));
 }
于 2012-10-20T17:47:50.140 に答える
1

Control を OwnerDraw に設定すると、コントロールの描画を自分で処理する必要があります。

これは簡単で汚い例です(好みに合わせて調整してください):

Private Sub ToolTip1_Draw(sender As Object, e As DrawToolTipEventArgs) Handles ToolTip1.Draw
    Dim tt As ToolTip = CType(sender, ToolTip)
    Dim b As Brush = New SolidBrush(tt.BackColor)

    e.Graphics.FillRectangle(b, e.Bounds)

    Dim sf As StringFormat = New StringFormat
    sf.Alignment = StringAlignment.Center
    sf.LineAlignment = StringAlignment.Center
    e.Graphics.DrawString(e.ToolTipText, SystemFonts.DefaultFont, SystemBrushes.ActiveCaptionText, e.Bounds, sf)

    sf.Dispose()
    b.Dispose()
End Sub

乾杯

于 2012-10-20T17:39:49.433 に答える