WinForm 清空界面控件值的小技巧
原文:WinForm 清空界面控件值的小技巧
代碼
代碼
在WinForm里面有時候需要清空自己輸入內容或是選擇的選項,以便重新操作流程,那么一般你是怎么清空界面各個控件值的呢?如果窗體里面控件,尤其是TextBox控件比較多的時候,代碼里面是不是要設置每個控件的Text屬性值為空呢?下面我用這個例子,來探討下清空界面控件值的小技巧。而且還能復用。不必每個窗體都做這些枯燥、無聊的工作。
一般的做法是在清除控件的事件里面添加下面這樣的代碼:


???????private?void?btnClear_Click(object?sender,?EventArgs?e)
????????{
????????????this.txbAccount.Text?=?"";
????????????this.txbAddress.Text?=?"";
????????????this.txbCmp.Text?=?"";
????????????this.chkCash.Checked?=?false;
????????????this.cmbDepart.Text?=?"";
????????????//.............窗體里面各類要清空控件;
????????}
????????{
????????????this.txbAccount.Text?=?"";
????????????this.txbAddress.Text?=?"";
????????????this.txbCmp.Text?=?"";
????????????this.chkCash.Checked?=?false;
????????????this.cmbDepart.Text?=?"";
????????????//.............窗體里面各類要清空控件;
????????}
?
?設想如果這樣做,一個窗體我們清空界面需用10行代碼,50個窗體那么就是500行代碼,大量重復的勞動,如果我們用下面這種方法的話,那么項目里面代碼量將大大減少,而且封裝到類里面,可以重用。(當然這個函數還可以重載、擴展,以便適應不同的需求)
private?void?btnClear_Click(object?sender,?EventArgs?e)
{
?????ClearCntrValue(this.pnlContent);
}
{
?????ClearCntrValue(this.pnlContent);
}
?
?


///?<summary>
????????///?清除容器里面某些控件的值
????????///?</summary>
????????///?<param?name="parContainer">容器類控件</param>
????????public?void?ClearCntrValue(Control?parContainer)
????????{
????????????for?(int?index?=?0;?index?<?parContainer.Controls.Count;?index++)
????????????{
????????????????//?如果是容器類控件,遞歸調用自己
????????????????if?(parContainer.Controls[index].HasChildren)
????????????????{
????????????????????ClearCntrValue(parContainer.Controls[index]);
????????????????}
????????????????else
????????????????{
????????????????????switch(parContainer.Controls[index].GetType().Name)
????????????????????{
????????????????????????case?"TextBox":
????????????????????????????parContainer.Controls[index].Text?=?"";
????????????????????????????break;
????????????????????????case?"RadioButton":
????????????????????????????((RadioButton)(parContainer.Controls[index])).Checked?=?false;
????????????????????????????break;
????????????????????????case?"CheckBox":
????????????????????????????((CheckBox)(parContainer.Controls[index])).Checked?=?false;
????????????????????????????break;
????????????????????????case?"ComboBox":
????????????????????????????((ComboBox)(parContainer.Controls[index])).Text?=?"";
????????????????????????????break;
????????????????????}
????????????????}
????????????}
????????}
????????///?清除容器里面某些控件的值
????????///?</summary>
????????///?<param?name="parContainer">容器類控件</param>
????????public?void?ClearCntrValue(Control?parContainer)
????????{
????????????for?(int?index?=?0;?index?<?parContainer.Controls.Count;?index++)
????????????{
????????????????//?如果是容器類控件,遞歸調用自己
????????????????if?(parContainer.Controls[index].HasChildren)
????????????????{
????????????????????ClearCntrValue(parContainer.Controls[index]);
????????????????}
????????????????else
????????????????{
????????????????????switch(parContainer.Controls[index].GetType().Name)
????????????????????{
????????????????????????case?"TextBox":
????????????????????????????parContainer.Controls[index].Text?=?"";
????????????????????????????break;
????????????????????????case?"RadioButton":
????????????????????????????((RadioButton)(parContainer.Controls[index])).Checked?=?false;
????????????????????????????break;
????????????????????????case?"CheckBox":
????????????????????????????((CheckBox)(parContainer.Controls[index])).Checked?=?false;
????????????????????????????break;
????????????????????????case?"ComboBox":
????????????????????????????((ComboBox)(parContainer.Controls[index])).Text?=?"";
????????????????????????????break;
????????????????????}
????????????????}
????????????}
????????}
?
?
?
?
posted on 2016-05-09 02:26 NET未來之路 閱讀(...) 評論(...) 編輯 收藏