我有一个richTextBox,用户可以将文本文件(rtf或txt)加载到。我有一些按钮,用于对齐richTextBox中的文本。问题是当用户加载新文档时,如果文本与中心对齐,则仍然选择左对齐(或最后一次对齐按钮)。如何自动突出显示正确的框(因此,如果第一行文本与中心对齐,则选择中心按钮,如果第二行文本向右居中,然后单击,则右按钮为突出显示,其他人被取消选择?
当前代码:
左对齐
private void Left()
{
richTextBoxPrintCtrl1.GetLineFromCharIndex(1);
richTextBoxPrintCtrl1.SelectionAlignment = HorizontalAlignment.Left;
if (left.Checked == true)
{
right.Checked = false;
center.Checked = false;
}
中心对齐
private void Center()
{
richTextBoxPrintCtrl1.GetLineFromCharIndex(1);
richTextBoxPrintCtrl1.SelectionAlignment = HorizontalAlignment.Left;
if (left.Checked == true)
{
right.Checked = false;
center.Checked = false;
}
右对齐
private void Right()
{
richTextBoxPrintCtrl1.GetLineFromCharIndex(1);
richTextBoxPrintCtrl1.SelectionAlignment = HorizontalAlignment.Right;
if (left.Checked == true)
{
right.Checked = false;
center.Checked = false;
}
这需要不断更新,以便当用户点击一行时,它会获得对齐状态并检查相应的按钮。
答案 0 :(得分:0)
我创建了一种记事本,可以选择执行粗体,斜体格式化等等。当用户单击具有任何此格式的单词时,我的按钮会突出显示。也许你可以在你的项目中使用相同的东西。
首先,我在richtextbox上创建一个事件(selectionchanged)。
在det之后我插入了这段代码:
if (Document.SelectionFont != null)
{
tb_Bold.Checked = Document.SelectionFont.Bold;
tb_Italic.Checked = Document.SelectionFont.Italic;
tb_UnderLine.Checked = Document.SelectionFont.Underline;
tb_FontSize.Text = Document.SelectionFont.SizeInPoints.ToString();
tb_Font.Text = Document.SelectionFont.FontFamily.Name;
if (Document.SelectionAlignment.ToString() == "Right")
{
Center.Checked = false;
Right.Checked = true;
Left.Checked = false;
}
else if (Document.SelectionAlignment.ToString() == "Center")
{
Center.Checked = true;
Right.Checked = false;
Left.Checked = false;
}
else
{
Center.Checked = false;
Right.Checked = false;
Left.Checked = true;
}
}
在每个按钮下我都有这个代码:
Document.SelectionAlignment = HorizontalAlignment.Center;
Center.Checked = true;
Right.Checked = false;
Left.Checked = false;
当然要更改对齐,并选中按钮的checkstatus。