如何在打开文件时选择正确的对齐按钮?

时间:2013-04-24 15:37:39

标签: c# winforms visual-studio richtextbox text-align

我有一个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;
        }

这需要不断更新,以便当用户点击一行时,它会获得对齐状态并检查相应的按钮。

1 个答案:

答案 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。