【发布时间】:2023-04-02 20:10:01
【问题描述】:
我需要验证我在按下按钮时动态创建的 x 个 RichTextBoxes。在将内容复制到剪贴板并调用下一个表单之前,我需要确保没有一个 RTB 为空。
我尝试添加一个布尔变量,但如果中间某处有一个空 RTB,则会跳过此变量。
这是我拥有的当前代码。非常感谢任何帮助。
List<RichTextBox> rtbs = scrlPanel.Children.OfType<RichTextBox>().ToList();
List<TextBlock> texts = scrlPanel.Children.OfType<TextBlock>().ToList();
StringBuilder raTemplate = new StringBuilder();
//bool flag = true; // True as in It is empty
foreach (RichTextBox rtb in scrlPanel.Children.OfType<RichTextBox>())
{
TextRange txtRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
if (txtRange.Text.Trim() == string.Empty)
{
MessageBox.Show("Empty fields.");
break;
}
else
{
foreach (TextBlock txtb in texts)
{
//RichTextBox rtb = rtbs[texts.IndexOf(txtb)];
//TextRange txtRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
raTemplate.Append(txtb.Text + " " + "::" + Environment.NewLine + txtRange.Text.Trim() + Environment.NewLine);
}
Clipboard.SetText(raTemplate.ToString());
RA_Email ra = new RA_Email();
ra.raEmail();
//flag = true;
}
}
【问题讨论】:
-
如果第三个 RTB 为空,例如,您要跳过其余部分还是只跳过第三个?还是您也想撤消前两个?
-
您的第一篇文章(代码)几乎解决了我的问题 :) 但是是的,我想在代码遇到空 RTB 时立即丢弃所有内容,无论是在开始时、中间还是在结束。
-
我删除了那个帖子,因为我意识到
txtRange在第一个循环之外不会存在。重新发布了应该与txtRange变量一起使用的更新版本:)
标签: c# wpf richtextbox validating