當鼠標懸停在鼠標上方時,我有許多不同類型的控件,我希望它們具有淡入淡出效果。我需要讓我的方法像這樣工作:如何從一個方法內的不同控件訪問「共享」變量
public void doFade(Object myControl){
(cast?)myControl.BackgroundColor = Color.Red;
}
是否有可能,如果是這樣,我該怎麼做?謝謝!
當鼠標懸停在鼠標上方時,我有許多不同類型的控件,我希望它們具有淡入淡出效果。我需要讓我的方法像這樣工作:如何從一個方法內的不同控件訪問「共享」變量
public void doFade(Object myControl){
(cast?)myControl.BackgroundColor = Color.Red;
}
是否有可能,如果是這樣,我該怎麼做?謝謝!
public void doFade(Control myControl)
{
myControl.BackColor = Color.Red;
}
這是一個壞主意,一個對象類型的變量作爲參數傳遞,使用控制,使之明確。
該屬性在WinForms – 2013-04-30 12:00:05
@ bash.d中被稱爲'BackColor',這是真的,謝謝! – David 2013-04-30 12:00:58
只要他們都從基類派生(ControlBase
也許?),然後改變你的參數將其轉換爲基礎(或者可能只是將基類作爲參數?)。
public void doFade(Object myControl)
{
((ControlBase)myControl).BackColor = Color.Red;
}
假設這是ControlBase
:
public abstract class ControlBase
{
public Color BackColor { get; set; }
}
該屬性在WinForms – 2013-04-30 12:00:28
@ bash.d中被稱爲'BackColor'謝謝:) – mattytommo 2013-04-30 12:02:50
可以使用.MouseEnter事件當鼠標 「進入」 你的控制進行註冊,然後進行相應的更改控制:設計師某處
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseenter.aspx
:
myControl.MouseEnter += new System.EventHandler(this.doFade);
在你的代碼隱藏:
public void doFade(object sender, System.EventArgs e) {
((Control)sender).BackgroundColor = Color.Red;
}
你可能想要一個abstact clas秒。看到這個鏈接:http://msdn.microsoft.com/en-IN/library/k535acbf(v=vs.71).aspx – 2013-04-30 11:56:31
@VictorMukherjee爲什麼?說明。 – 2013-04-30 12:03:37