2011-09-12 14 views
6

मैं सोच रहा था कि मैं यह कैसे कर सकता हूं। मुझे पता है कि मैं बटन घटक का उपयोग कर सकता हूं लेकिन जब मैं इसे एक छवि देता हूं तो उसके चारों ओर छोटी भूरे रंग की चीजें होती हैं। छवि बटन के साथ मैं होवर प्रभावछवि बटन कैसे बनाएं

+1

आप WinForms, WPF या ASP.NET बारे में बात कर रहे हैं? – Alxandr

+0

मैं WinForms – Matthewj

+0

के बारे में बात कर रहा हूँ मुझे लगता है कि WinForms में कुशल नहीं हूँ, लेकिन मुझे लगता है कि आप सीमा और पृष्ठभूमि ImageButtons पर की चालू कर सकते हैं, और फिर, वहाँ शायद माउसओवर या की तरह आप बदलना उपयोग कर सकते हैं कि कुछ के लिए कुछ घटना है छवि। – Alxandr

उत्तर

15

आप कोई सीमा के साथ एक बटन बनाने के लिए चाहते हैं, लेकिन उपयोगकर्ता माउस के साथ इस पर घूमता है जब विभिन्न छवियों को प्रदर्शित करता देखा? यहाँ कैसे आप यह कर सकते है:

  1. दो छवियों, बटन के सामान्य उपस्थिति के लिए एक और जब माउस पर मँडरा रहा है के लिए एक जोड़ने पर अपने फार्म के लिए कोई ImageList नियंत्रण जोड़ें।

  2. अपने बटन जोड़ें और सेट निम्नलिखित गुण:
    FlatStyle = फ्लैट
    FlatAppearance.BorderColor (और शायद MouseOverBackColor & MouseDownBackColor) अपने प्रपत्र की पृष्ठभूमि का रंग
    ImageList = 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

के लिए एक और छवि कैसे दिखा सकता हूं आप बटन के लिए पृष्ठभूमि छवि संपत्ति असाइन कर सकते हैं। आप अपने अनुरोध के अनुसार पृष्ठभूमि को बदलने के लिए OnMouseEnter और OnMouseExit ईवेंट का भी उपयोग कर सकते हैं।

BackgroundImageOnMouseEnterOnMouseLeave

0

WinForm में वेब फॉर्म के विपरीत छवि बटन नहीं है। एक सामान्य बटन पर एक छवि जोड़ना संभव है, लेकिन कुछ मामलों में अच्छा नहीं दिख रहा है। आपको किसी तृतीय पक्ष बटन नियंत्रण का उपयोग करना पड़ सकता है जैसे WinForm ImageButton या अपना स्वयं का कस्टम कंट्रोल बनाएं।

1

छोटे सारांश (सीमा, MouseDownBackColor, MouseOverBackColor)

FlatApperance

BorderColor = काला या जो भी आप
BorderSize चाहते = 0
MouseDownBackColor = पारदर्शी
करने के लिए सेट किया जा सकता है MouseOverBackColor = पारदर्शी

Text = कोई भी

MouseDown के लिए:

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); 
      } 
     } 
    } 
} 
संबंधित मुद्दे