如何迭代当前页面上的所有文本框
本文关键字:文本 当前页 何迭代 迭代 | 更新日期: 2023-09-27 18:25:58
说我添加了许多文本框。如何迭代或循环所有文本框并进行一些检查。检查每个文本框的内容是否为数字。
下面是winForm的代码,如何在WinRT中进行?
foreach (Control item in GroupBox1.Controls)
{
if (item.GetType() == typeof(TextBox))
{
if (string.IsNullOrEmpty( ((TextBox)item).Text))
{
//Empty text in this box
}
}
}
谢谢。
这就是你想要做的事情。
public MainPage()
{
this.InitializeComponent();
Loaded += MainPage_Loaded;
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
foreach (var textBox in AllTextBoxes(this))
{
textBox.Text = "Hello world";
}
}
List<TextBox> AllTextBoxes(DependencyObject parent)
{
var list = new List<TextBox>();
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
if (child is TextBox)
list.Add(child as TextBox);
list.AddRange(AllTextBoxes(child));
}
return list;
}
参考:http://blog.jerrynixon.com/2012/09/how-to-access-named-control-inside-xaml.html
祝你好运!
您可以这样做。每个页面都有一个UIElements
的容器,所以我使用的是Grid
。您也可以对StackPanel
执行同样的操作。我正在迭代它的子级,并检查它是否为Textbox
。
XAML
<Grid x:Name="rootGrid" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<TextBox Height="51" Margin="210,103,0,0" Text="TextBox" Width="135"/>
<TextBox Height="51" Margin="459,149,0,0" Text="TextBox" Width="135"/>
<TextBox Height="51" Margin="277,279,0,0" Text="TextBox" Width="135"/>
<TextBox Height="51" Margin="580,279,0,0" Text="TextBox" Width="135"/>
<TextBlock Height="63" Margin="227,494,0,0" Text="TextBlock" Width="142"/>
<TextBlock Height="63" Margin="479,469,0,0" Text="TextBlock" Width="142"/>
<TextBlock Height="63" Margin="573,406,0,0" Text="TextBlock" Width="142"/>
<TextBlock Height="63" Margin="143,352,0,0" Text="TextBlock" Width="142"/>
<CheckBox Content="CheckBox" Height="81" Margin="1064,203,0,0" Width="130"/>
<CheckBox Content="CheckBox" Height="81" Margin="713,119,0,0" Width="130"/>
<CheckBox Content="CheckBox" Height="81" Margin="831,352,0,0" Width="130"/>
</Grid>
C#
protected override void OnNavigatedTo(NavigationEventArgs e)
{
foreach (var child in rootGrid.Children)
{
if (child is TextBox)
{
System.Diagnostics.Debug.WriteLine(((TextBox)child).Text);
if (string.IsNullOrEmpty(((TextBox)child).Text))
{
//Empty text in this box
}
}
}
}
//在asp.net c#中,如果您没有主页
foreach (Control ctrl in Page.Controls)
{
if (ctrl is TextBox)
{
((TextBox)ctrl).Text = string.Empty;
}
}
/如果您有母版页,则/
foreach(Page.Form.FindControl("ContentPlaceHolder1").Controls中的控件项){if(项为TextBox){((TextBox)项)。Text=字符串。空的}}