2009-04-20 25 views
2

パネルまたは同様のコントロールの境界のBackColorを変更する方法はありますか?Windowsフォームパネルの境界線の背景色

ユーザーコントロール上にマウスを置いたときにユーザーコントロールを「強調表示」しようとしています。

答えて

3

ここで国境をフォーム上のコントロールを強調して単純なクラスです:、その後

private void Form1_Load(object sender, EventArgs e) 
    { 
     foreach (Control c in Controls) 
     { 
      c.MouseEnter += mouseEnter; 
      c.MouseLeave += mouseLeave; 
     } 
    } 

    private void mouseEnter(object sender, EventArgs e) 
    { 
     _highlighter.SetTarget(sender as Control); 
     _highlighter.Visible = true; 
    } 

    private void mouseLeave(object sender, EventArgs e) 
    { 
     _highlighter.Visible = false; 
    } 

中:

public class Highlighter : Control 
    { 
     public void SetTarget(Control c) 
     { 
      Rectangle r = c.Bounds; 
      r.Inflate(3, 3); 
      Bounds = r; 
     } 

     protected override void OnPaint(PaintEventArgs e) 
     { 
      base.OnPaint(e); 

      e.Graphics.FillRectangle(Brushes.Red, e.ClipRectangle); 
     } 
    } 

はその後、自分の形で、それを使用するすべてのものを設定しますコンストラクタを作成するだけで、ハイライターを作成できます。

public Form1() 
    { 
     InitializeComponent(); 
     _highlighter = new Highlighter(); 
     Controls.Add(_highlighter); 
    } 
0

これを行うには、MouseEnter/MouseLeaveイベントを使用できます。

private void panel1_MouseEnter(object sender, EventArgs e) 
    { 
     panel1.BackColor = System.Drawing.Color.Red; 
    } 

    private void panel1_MouseLeave(object sender, EventArgs e) 
    { 
     panel1.BackColor = System.Drawing.Color.Empty; 
    } 
+0

anelのバックカラー。私はBORDERのバックカラーを変更したい – leora

+0

あなたは「パネルまたは同様のコントロールのバックカラー」という質問をしています。正しい答えが必要な場合は、正しい情報で質問を再編集してください –

+0

ごめんなさい。 。私はダウンダニを取り除いた – leora

関連する問題