2016-10-11 52 views
0

嗨我想完成的是 當我將控件的visible屬性更改爲false時,我也想將enabled屬性更改爲false。反之亦然。將控件設置爲啓用false如果它們不可見

的情景(假設我們有一個文本框和複選框此: 如果複選框被選中文本框是可見的並啓用 其他 文本框是不可見的,而不是啓用

我可以通過事件做到這一點但它太多的代碼重複有多個控件時..

+0

啓動時通過控件循環,並將相同的VisibilityChanged鉤子添加到每個控件,該控件的啓用設置爲false或true。 –

回答

1

你可以處理控件的VisibleChanged-event

void Controls_VisibleChanged(object sender, EventArgs e) 
{ 
    Control c = (Control) sender; 
    c.Enabled = c.Visible; 
} 

您CA對所有控件使用相同的事件處理程序。例如在構造函數中:

foreach (Control c in this.Controls) 
    c.VisibleChanged += new EventHandler(this.Controls_VisibleChanged); 
0

我無法理解你的問題,但我會寫一些可能有所幫助的東西。

你的複選框,雙擊並編輯CheckedChanged事件和編寫代碼:

if (!<CheckBoxName>.Checked) 
{ 
    <TextBoxName>.Enabled = false; 
    <TextBoxName>.Hide(); 
} 
else 
{ 
    <TextBoxName>.Enabled = true; 
    <TextBoxName>.Show(); 
} 

注:
<CheckBoxName> =您的複選框的名字
<TextBoxName> =您的文本框的名字

更改複選框。檢查屬性並將其更改爲true以使代碼平穩運行。

我希望能夠幫助你...

相關問題