我在String
写了一条消息“Hello,world。”到RichTextBox
。
如果我然后将RichTextBox
TextRange
复制到新的String
并进行字符串比较,则它们将不相等,即使它们都具有相同的文本。
我正在将字符串message
与MessageRichTextBox()
进行比较。
发生了什么事?必须从RichTextBox
复制或排除一些额外数据。
XAML
<RichTextBox x:Name="rtbMessage" Margin="10,10,10,50" />
<Button x:Name="btnCompare" Content="Compare" Margin="231,264,211,29" Width="75" Click="btnCompare_Click"/>
C#
String message = "Hello, world.";
Paragraph p = new Paragraph();
// Startup
// Write Message to RichTextBox
//
public MainWindow()
{
InitializeComponent();
rtbMessage.Document = new FlowDocument(p);
rtbMessage.BeginChange();
p.Inlines.Add(new Run(message));
rtbMessage.EndChange();
}
// Copy RichTextBox to String
//
public String MessageRichTextBox()
{
FlowDocument fd = new FlowDocument(p);
rtbMessage.Document = fd;
TextRange textRange = new TextRange(
rtbMessage.Document.ContentStart,
rtbMessage.Document.ContentEnd
);
return textRange.Text;
}
// Compare Strings Button
//
private void buttonCompare_Click(object sender, RoutedEventArgs e)
{
if (message == MessageRichTextBox())
{
MessageBox.Show("Strings Match");
}
else
{
MessageBox.Show("Does Not Match");
}
}
结果
String message =“Hello,world。”
String MessageRichTextBox()=“Hello,world。”
不匹配
答案 0 :(得分:2)
if (message.Equals(MessageRichTextBox()))
MessageBox.Show("Strings Match");
else
MessageBox.Show("Does Not Match");