C#WPF RichTextboxf检查是否有任何文本
我不想检查RichTextbox中的内容,如果它是空的,则更好。 我对代码进行了调试,发现从框中获取的字符串中有“\r\n”。我如何检查这一点,因为仅仅C#WPF RichTextboxf检查是否有任何文本,c#,wpf,C#,Wpf,我不想检查RichTextbox中的内容,如果它是空的,则更好。 我对代码进行了调试,发现从框中获取的字符串中有“\r\n”。我如何检查这一点,因为仅仅String.Equals(“\r\n”)不工作。要从RichTextbox中获取文本,我有以下方法: private string ConvertRichTextBoxContentsToString(RichTextBox rtb) { TextRange textRange = new TextRange(rtb.Do
String.Equals(“\r\n”)代码>不工作。要从RichTextbox中获取文本,我有以下方法:
private string ConvertRichTextBoxContentsToString(RichTextBox rtb)
{
TextRange textRange = new TextRange(rtb.Document.ContentStart,
rtb.Document.ContentEnd);
return textRange.Text;
}
有人对此有想法吗?\r\n是CRLF新行字符
你试过.IsEmpty酒店吗 \r\n是CRLF新行字符
你试过.IsEmpty酒店吗 试试这个:
if(String.IsNullOrWhiteSpace(text))
{
// Text found
}
else
{
// No text
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string s = ConvertRichTextBoxContentsToString(rtb);
if (string.IsNullOrWhiteSpace(s))
{
MessageBox.Show("empty!");
}
}
}
您还可以使用text.Trim()删除空格和新行,尝试以下操作:
if(String.IsNullOrWhiteSpace(text))
{
// Text found
}
else
{
// No text
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string s = ConvertRichTextBoxContentsToString(rtb);
if (string.IsNullOrWhiteSpace(s))
{
MessageBox.Show("empty!");
}
}
}
您还可以使用text.Trim()string.IsNullOrWhiteSpace
删除空格和新行。试试这个:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string s = ConvertRichTextBoxContentsToString(rtb);
if (string.IsNullOrWhiteSpace(s))
{
MessageBox.Show("empty!");
}
}
}
也等于:
string s = ConvertRichTextBoxContentsToString(rtb);
if(s == "\r\n")
{
MessageBox.Show("empty!");
}
string s = ConvertRichTextBoxContentsToString(rtb);
if (s.Equals("\r\n"))
{
MessageBox.Show("empty!");
}
如果您没有看到MessageBox,RichTextBox就不是真正的空。您可能需要阅读以下内容:
如果输入并删除了内容,则开始指针和结束指针之间的差值为4。您可以尝试使用上面的以下方法来确定RichTextBox是否为空:
public bool IsRichTextBoxEmpty(RichTextBox rtb)
{
if (rtb.Document.Blocks.Count == 0) return true;
TextPointer startPointer = rtb.Document.ContentStart.GetNextInsertionPosition(LogicalDirection.Forward);
TextPointer endPointer = rtb.Document.ContentEnd.GetNextInsertionPosition(LogicalDirection.Backward);
return startPointer.CompareTo(endPointer) == 0;
}
string.IsNullOrWhiteSpace
应该可以正常工作。试试这个:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string s = ConvertRichTextBoxContentsToString(rtb);
if (string.IsNullOrWhiteSpace(s))
{
MessageBox.Show("empty!");
}
}
}
也等于:
string s = ConvertRichTextBoxContentsToString(rtb);
if(s == "\r\n")
{
MessageBox.Show("empty!");
}
string s = ConvertRichTextBoxContentsToString(rtb);
if (s.Equals("\r\n"))
{
MessageBox.Show("empty!");
}
如果您没有看到MessageBox,RichTextBox就不是真正的空。您可能需要阅读以下内容:
如果输入并删除了内容,则开始指针和结束指针之间的差值为4。您可以尝试使用上面的以下方法来确定RichTextBox是否为空:
public bool IsRichTextBoxEmpty(RichTextBox rtb)
{
if (rtb.Document.Blocks.Count == 0) return true;
TextPointer startPointer = rtb.Document.ContentStart.GetNextInsertionPosition(LogicalDirection.Forward);
TextPointer endPointer = rtb.Document.ContentEnd.GetNextInsertionPosition(LogicalDirection.Backward);
return startPointer.CompareTo(endPointer) == 0;
}
如果您尝试与Environment.NewLine进行比较会怎么样?“”
对您来说也是空字符串吗?如果您不关心其他类型的空白,您可以检查string.IsNullOrWhiteSpace
。@Only3luetextRange.Text.Trim().Length==0
将验证自Trim()以来没有文本
删除所有前导和尾随出现的内容,并且作为CRLF新行字符的\r\n
也将被删除。如果尝试与环境进行比较,会怎么样。换行:?是“”
是否也为您设置空字符串?如果您不关心其他类型的空白,您可以检查字符串.IsNullOrWhiteSpace
。@Only3luetextRange.Text.Trim().Length==0
将验证自Trim()以来没有文本
删除所有前导和尾随出现的内容,并且作为CRLF新行字符的\r\n
也将被删除。我尝试了您的解决方案,但没有一个有效,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于Equals。我尝试了你的解决方案,但没有一个有效,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于Equals。我尝试了你的解决方案,但不起作用,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于Equals。我尝试了你的解决方案,但不起作用,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于平等的人。