2011-09-12 7 views
6

私はこれをどうやってやるのだろうと思っていました。私はボタンコンポーネントを使うことができますが、イメージを与えると、ボタンコンポーネントの周りに小さなグレーのものがあります。画像ボタンを使用すると、どのようにホバー効果の別の画像を表示できますか?イメージボタンの作り方

+1

あなたはリサイズ、WPFやASP.NETについて話していますか? – Alxandr

+0

私はWinFormsについて話しています – Matthewj

+0

私はWinFormsに熟練しているわけではありませんが、ImageButtonsで枠線と背景を変えることができますし、マウスオーバーなどのイベントがあります。画像。 – Alxandr

答えて

15

を参照してくださいあなたは枠なしでボタンを作成したいが、ユーザーがマウスでそれの上に置いたときに異なる画像を表示しますか?ここではあなたがそれを行うことができます方法は次のとおりです。二つの画像、ボタンの正常な外観のためのものとマウスが上にマウスを移動したときのための1つを追加で

  1. は、フォームにImageListコントロールを追加します。

  2. 次のプロパティをあなたのボタンを追加し、設定します。
    FlatStyle =フラット
    FlatAppearance.BorderColor(そしておそらくMouseOverBackColor & MouseDownBackColor)フォームの背景色
    ImageList =あなたがフォームに
    ImageIndexを追加したイメージリストへあなたの通常の画像のインデックス値

コードMouseHoverとMouseLこのようなボタンのイベントを起こす:

private void button1_MouseHover(object sender, EventArgs e) { 
    // ImageList index value for the hover image. 
    button1.ImageIndex = 1; 
} 

private void button1_MouseLeave(object sender, EventArgs e) { 
    // ImageList index value for the normal image. 
    button1.ImageIndex = 0; 
} 

私はあなたが探している視覚効果を与えると信じています。

+0

絶対完璧 – motoDrizzt

+0

Math.pow(vote_up、current_up_votes * 2) –

1

ボタンのBackgroundImageプロパティを割り当てることができます。 OnMouseEnterイベントとOnMouseExitイベントを使用して、リクエストごとに背景を変更することもできます。

BackgroundImageOnMouseEnterOnMouseLeave

0

WinFormにはWebフォームとは異なりImageButtonはありません。通常のボタンに画像を追加することは可能ですが、場合によってはうまく見えません。 WinForm ImageButtonのようなサードパーティのボタンコントロールを使用するか、独自のCustomControlを作成する必要があります。

1

小概要(ボーダー、MouseDownBackColor、MouseOverBackColor)

FlatApperance

BorderColor =黒またはこれまでに何を
BorderSizeたい= 0
MouseDownBackColor =透明
に設定することができますMouseOverBackColor =透明

MouseDownイベントについては

Text =なし

private void button1_MouseDown(object sender, MouseEventArgs e) { // ImageList index value for the mouse down image. button1.ImageIndex = 2; }

0

私は、画像ボタンを必要ですが、私はToolstripMenuButtonのようなものを望んでいました。 ホバー上の正しい罫線と色を使用してください。 は、だから私はちょうどそれを行うには、カスタムコントロールを作った:

using System; 
using System.ComponentModel; 
using System.Windows.Forms; 

namespace LastenBoekInfrastructure.Controls.Controls 
{ 
    [DefaultEvent("Click")] 
    public class ImageButton : UserControl 
    { 
     public string ToolTipText 
     { 
      get { return _bButton.ToolTipText; } 
      set { _bButton.ToolTipText = value; } 
     } 

     public bool CheckOnClick 
     { 
      get { return _bButton.CheckOnClick; } 
      set { _bButton.CheckOnClick = value; } 
     } 

     public bool DoubleClickEnabled 
     { 
      get { return _bButton.DoubleClickEnabled; } 
      set { _bButton.DoubleClickEnabled = value; } 
     } 

     public System.Drawing.Image Image 
     { 
      get { return _bButton.Image; } 
      set { _bButton.Image = value; } 
     } 

     public new event EventHandler Click; 
     public new event EventHandler DoubleClick; 

     private ToolStrip _tsMain; 
     private ToolStripButton _bButton; 

     public ImageButton() 
     { 
      InitializeComponent(); 
     } 

     private void InitializeComponent() 
     { 
      var resources = new ComponentResourceManager(typeof(ImageButton)); 
      _tsMain = new ToolStrip(); 
      _bButton = new ToolStripButton(); 
      _tsMain.SuspendLayout(); 
      SuspendLayout(); 

      // 
      // tsMain 
      // 
      _tsMain.BackColor = System.Drawing.Color.Transparent; 
      _tsMain.CanOverflow = false; 
      _tsMain.Dock = DockStyle.Fill; 
      _tsMain.GripMargin = new Padding(0); 
      _tsMain.GripStyle = ToolStripGripStyle.Hidden; 
      _tsMain.Items.AddRange(new ToolStripItem[] { 
      _bButton}); 
      _tsMain.Location = new System.Drawing.Point(0, 0); 
      _tsMain.Name = "_tsMain"; 
      _tsMain.Size = new System.Drawing.Size(25, 25); 
      _tsMain.TabIndex = 0; 
      _tsMain.Renderer = new ImageButtonToolStripSystemRenderer(); 
      // 
      // bButton 
      // 
      _bButton.DisplayStyle = ToolStripItemDisplayStyle.Image; 
      _bButton.Image = ((System.Drawing.Image)(resources.GetObject("_bButton.Image"))); 
      _bButton.ImageTransparentColor = System.Drawing.Color.Magenta; 
      _bButton.Name = "_bButton"; 
      _bButton.Size = new System.Drawing.Size(23, 22); 
      _bButton.Click += bButton_Click; 
      _bButton.DoubleClick += bButton_DoubleClick; 
      // 
      // ImageButton 
      // 
      Controls.Add(_tsMain); 
      Name = "ImageButton"; 
      Size = new System.Drawing.Size(25, 25); 
      _tsMain.ResumeLayout(false); 
      _tsMain.PerformLayout(); 
      ResumeLayout(false); 
      PerformLayout(); 
     } 

     void bButton_Click(object sender, EventArgs e) 
     { 
      if (Click != null) 
      { 
       Click(this, e); 
      } 
     } 

     void bButton_DoubleClick(object sender, EventArgs e) 
     { 
      if(DoubleClick != null) 
      { 
       DoubleClick(this, e); 
      } 
     } 

     public class ImageButtonToolStripSystemRenderer : ToolStripSystemRenderer 
     { 
      protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 
      { 
       //base.OnRenderToolStripBorder(e); 
      } 
     } 
    } 
} 
関連する問題