我想弄清楚如何清除所有文本框并取消选中 C# WPF 中的所有复选框。表单有很多文本框,为每个文本框执行 .Clear() 或 = "" 会变得乏味。复选框也是一样。
我听说在 Windows 窗体中使用 foreach 循环执行类似下面的操作很容易,但是我在 WPF 上执行此操作,因此无法使其正常工作。
foreach (Control c in Controls)
{
if (c is CheckBox)
{
((CheckBox) c).Checked = false;
}
else if (c is TextBox)
{
((TextBox) c).Text = "";
}
}
Run Code Online (Sandbox Code Playgroud)
有人有什么建议吗?谢谢
让整个控件都在一个容器内(让它成为一个堆栈面板),如下所示:
<StackPanel Name="containerCanvas" Margin="0,0,0,191">
<CheckBox Name="chk1" >chk1</CheckBox>
<CheckBox Name="chk2" >chk2</CheckBox>
<CheckBox Name="chk3" >chk3</CheckBox>
<TextBox Name="txt1" Text="xxxxxxxx"></TextBox>
<TextBox Name="txt2" Text="xxxxxxxxx"></TextBox>
<TextBox Name="txt3" Text="xxxxxxxxxx"></TextBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
然后清除按钮的 Click 事件将如下所示:
private void btnClear_Click(object sender, RoutedEventArgs e)
{
foreach (Control ctl in containerCanvas.Children)
{
if (ctl.GetType() == typeof(CheckBox))
((CheckBox)ctl).IsChecked = false;
if (ctl.GetType() == typeof(TextBox))
((TextBox)ctl).Text = String.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)