C#WPF RichTextboxf检查是否有任何文本

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

我不想检查RichTextbox中的内容,如果它是空的,则更好。 我对代码进行了调试,发现从框中获取的字符串中有“\r\n”。我如何检查这一点,因为仅仅
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
。@Only3lue
textRange.Text.Trim().Length==0
将验证自
Trim()以来没有文本
删除所有前导和尾随出现的内容,并且作为CRLF新行字符的
\r\n
也将被删除。如果尝试与环境进行比较,会怎么样。换行:?是
“”
是否也为您设置空字符串?如果您不关心其他类型的空白,您可以检查
字符串.IsNullOrWhiteSpace
。@Only3lue
textRange.Text.Trim().Length==0
将验证自
Trim()以来没有文本
删除所有前导和尾随出现的内容,并且作为CRLF新行字符的
\r\n
也将被删除。我尝试了您的解决方案,但没有一个有效,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于Equals。我尝试了你的解决方案,但没有一个有效,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于Equals。我尝试了你的解决方案,但不起作用,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于Equals。我尝试了你的解决方案,但不起作用,因为我可以看到.Text或字符串本身是“/r/n”。但我不明白为什么它不适用于平等的人。