WPF如何快速清空所有TextBox内容?

wangqiaoluck 2013-10-09 10:15:05
            //清空编辑栏
tbDept.Clear();
tbEmail.Clear();
tbPwd.Clear();
tbPwd2.Clear();
tbTel.Clear();
cbIdent.Text = "";
tb_pName.Clear();


以上是程序中的代码,感觉这样写太丑了,影响代码美观。有没有更好的办法清空某窗口中的所有编辑栏的内容?上班在线等。
...全文
923 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是小数位 2013-10-10
  • 打赏
  • 举报
回复
引用 22 楼 wangqiaoluck 的回复:
[quote=引用 17 楼 wangjcltj 的回复:] [quote=引用 10 楼 wangqiaoluck 的回复:] [quote=引用 2 楼 CXJ0062008 的回复:]

foreach  (Control ctrls  in  Controls)
{
  if(ctrls  is  TextBox)
  {
    ctrls.Text =  "" ;
  }
}
请问Controls是什么类型的?[/quote] Controls是所有控件的基类,有些问题不要开口就问,自己先查查资料吧。。。[/quote] Winform里的控件是继承System.Windows.Forms.Control,而WPF控件继承System.Windows.Controls。 以下是实现代码,刚刚证明了好用,与你分享
 UIElementCollection Childrens = this.canvas2.Children;
            ClearAllControlContent(Childrens);
private void ClearAllControlContent(UIElementCollection uiControls)
        {
            foreach (UIElement element in uiControls)
            {
                if (element is TextBox)
                {
                    (element as TextBox).Text = "";
                }
            }
        }
[/quote]謝謝分享
wangqiaoluck 2013-10-09
  • 打赏
  • 举报
回复
引用 17 楼 wangjcltj 的回复:
[quote=引用 10 楼 wangqiaoluck 的回复:] [quote=引用 2 楼 CXJ0062008 的回复:]

foreach  (Control ctrls  in  Controls)
{
  if(ctrls  is  TextBox)
  {
    ctrls.Text =  "" ;
  }
}
请问Controls是什么类型的?[/quote] Controls是所有控件的基类,有些问题不要开口就问,自己先查查资料吧。。。[/quote] Winform里的控件是继承System.Windows.Forms.Control,而WPF控件继承System.Windows.Controls。 以下是实现代码,刚刚证明了好用,与你分享
 UIElementCollection Childrens = this.canvas2.Children;
            ClearAllControlContent(Childrens);
private void ClearAllControlContent(UIElementCollection uiControls)
        {
            foreach (UIElement element in uiControls)
            {
                if (element is TextBox)
                {
                    (element as TextBox).Text = "";
                }
            }
        }
我是小数位 2013-10-09
  • 打赏
  • 举报
回复
我不知道那個容器,試試Canvas.Children,你自己查查吧
jiaoshiyao 2013-10-09
  • 打赏
  • 举报
回复
刚毕业的啊
wangqiaoluck 2013-10-09
  • 打赏
  • 举报
回复
引用 17 楼 wangjcltj 的回复:
[quote=引用 10 楼 wangqiaoluck 的回复:] [quote=引用 2 楼 CXJ0062008 的回复:]

foreach  (Control ctrls  in  Controls)
{
  if(ctrls  is  TextBox)
  {
    ctrls.Text =  "" ;
  }
}
请问Controls是什么类型的?[/quote] Controls是所有控件的基类,有些问题不要开口就问,自己先查查资料吧。。。[/quote] 好的,谢谢你的解答。
by_封爱 版主 2013-10-09
  • 打赏
  • 举报
回复
3楼真搞笑. 标题明明是 <如何快速清空所有TextBox内容> 然后还在这说别人"人家没说所有的TextBox都清楚了"
wangjcltj 2013-10-09
  • 打赏
  • 举报
回复
引用 10 楼 wangqiaoluck 的回复:
[quote=引用 2 楼 CXJ0062008 的回复:]

foreach  (Control ctrls  in  Controls)
{
  if(ctrls  is  TextBox)
  {
    ctrls.Text =  "" ;
  }
}
请问Controls是什么类型的?[/quote] Controls是所有控件的基类,有些问题不要开口就问,自己先查查资料吧。。。
wangqiaoluck 2013-10-09
  • 打赏
  • 举报
回复
引用 15 楼 CXJ0062008 的回复:
foreach (Control ctrls in Canvas.Controls) { if(ctrls is TextBox) { ctrls.Text = "" ; } }
WPF里的Canvas没有Controls属性
我是小数位 2013-10-09
  • 打赏
  • 举报
回复
foreach (Control ctrls in Canvas.Controls) { if(ctrls is TextBox) { ctrls.Text = "" ; } }
wangqiaoluck 2013-10-09
  • 打赏
  • 举报
回复
引用 12 楼 CXJ0062008 的回复:
[quote=引用 10 楼 wangqiaoluck 的回复:] [quote=引用 2 楼 CXJ0062008 的回复:]

foreach  (Control ctrls  in  Controls)
{
  if(ctrls  is  TextBox)
  {
    ctrls.Text =  "" ;
  }
}
请问Controls是什么类型的?[/quote] 他是控件的集合,前面加上容器,表示這個容器中的所有控件,如果你還要清空其他控件,則那個If你就可以不要了[/quote] 哦哦,我的容器是Canvas,Canvas里哪个属性是代表所有控件呢?
wangqiaoluck 2013-10-09
  • 打赏
  • 举报
回复
引用 9 楼 CXJ0062008 的回复:
他不是說:有没有更好的办法清空某窗口中的所有编辑栏的内容? 所心這樣是比較好的,最好加上容器名,如Form1 foreach (Control ctrls in Form1.Controls) { if(ctrls is TextBox) { ctrls.Text = "" ; } }
我是想在窗口里清空,也就是说在这个窗口类里写一个清空此类中所有TextBox的内容,那么 Form1.Controls就不能这么写了,而Window.出来的属性也没有Controls。
我是小数位 2013-10-09
  • 打赏
  • 举报
回复
引用 10 楼 wangqiaoluck 的回复:
[quote=引用 2 楼 CXJ0062008 的回复:]

foreach  (Control ctrls  in  Controls)
{
  if(ctrls  is  TextBox)
  {
    ctrls.Text =  "" ;
  }
}
请问Controls是什么类型的?[/quote] 他是控件的集合,前面加上容器,表示這個容器中的所有控件,如果你還要清空其他控件,則那個If你就可以不要了
xc人生 2013-10-09
  • 打赏
  • 举报
回复
觉得楼上的做法可以考虑试试
wangqiaoluck 2013-10-09
  • 打赏
  • 举报
回复
引用 2 楼 CXJ0062008 的回复:

foreach  (Control ctrls  in  Controls)
{
  if(ctrls  is  TextBox)
  {
    ctrls.Text =  "" ;
  }
}
请问Controls是什么类型的?
我是小数位 2013-10-09
  • 打赏
  • 举报
回复
他不是說:有没有更好的办法清空某窗口中的所有编辑栏的内容? 所心這樣是比較好的,最好加上容器名,如Form1 foreach (Control ctrls in Form1.Controls) { if(ctrls is TextBox) { ctrls.Text = "" ; } }
黄瓜黄瓜 2013-10-09
  • 打赏
  • 举报
回复
ViewModel=new ViewModel
黄瓜黄瓜 2013-10-09
  • 打赏
  • 举报
回复
WPF 应该可以清ViewModel 来实现吧
lhx527099095 2013-10-09
  • 打赏
  • 举报
回复
没有什么好的办法吧 就是一个一个清呗~~~~
  • 打赏
  • 举报
回复
绑定数据源,BindingSource
jiaoshiyao 2013-10-09
  • 打赏
  • 举报
回复
没啥好方法 写成方法
加载更多回复(3)

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧