2014-06-27 145 views
0

我在C#中做了一個自定義控件,並且隨時用戶的光標懸停在自定義控件上我希望光標顯示爲'手'。我在哪裏放置代碼來做這樣的事情?自定義控件使用光標手

????.Cursor = Cursors.Hand; 

爲了使它在懸停在此自定義控件上時顯示手形光標?

namespace CustomRangeBar 
{ 
    public partial class RangeBar : UserControl 
    { 
     public RangeBar() 
     { 
      InitializeComponent(); 
      label1.ForeColor = Color.Black; 
      this.ForeColor = SystemColors.Highlight; // set the default color the rangeBar 
      this.Click += new EventHandler(RangeBar_Click); 
     } 

     protected float percent = 0.0f; // Protected because we don't want this to be accessed from the outside 
     // Create a Value property for the rangeBar 
     public float Value 
     { 
      get 
      { 
       return percent; 
      } 
      set 
      { 
       // Maintain the value between 0 and 100 
       if (value < 0) value = 0; 
       else if (value > 100) value = 100; 
       percent = value; 
       label1.Text = value.ToString(); 
       //redraw the rangeBar every time the value changes 
       this.Invalidate(); 
      } 
     } 
     protected override void OnPaint(PaintEventArgs e) 
     { 
      base.OnPaint(e); 
      Brush b = new SolidBrush(this.ForeColor); //create brush that will draw the background of the range bar 
      // create a linear gradient that will be drawn over the background. FromArgb means you can use the Alpha value which is the transparency 
      LinearGradientBrush lb = new LinearGradientBrush(new Rectangle(0, 0, this.Width, this.Height), Color.FromArgb(255, Color.White), Color.FromArgb(50, Color.White), LinearGradientMode.Vertical); 

      // calculate how much has the rangeBar to be filled for 'x' % 
      int width = (int)((percent/100) * this.Width); 
      e.Graphics.FillRectangle(b, 0, 0, width, this.Height); 
      e.Graphics.FillRectangle(lb, 0, 0, width, this.Height); 
      b.Dispose(); lb.Dispose(); 
     } 

     private void RangeBar_SizeChanged(object sender, EventArgs e) 
     { 
      // maintain the label in the center of the rangeBar 
      label1.Location = new Point(this.Width/2 - 21/2 - 4, this.Height/2 - 15/2); 
     } 

    } 
} 

public void RangeBar_Click(object obj, EventArgs ea) 
{ 
    // This get executed if the pictureBox gets clicked 
    label1.text = "Increment 1"; 
} 

回答

1

UserControl從Control派生,因此應該已經從該類繼承Cursor屬性。你沒有在代碼/屬性中看到Cursor屬性?

+0

那裏位於哪裏? – JokerMartini

+0

ahhh我現在看到它。我很抱歉。謝謝 – JokerMartini

+0

我在網上搜索了一下,找不到這個。 – JokerMartini