我遇到了问题。我在winform上放置了一个richtextbox控件。大多数功能正在运行。一件没有正确更改字体的零件。我有它可以更改所选字体的位置,保留了粗体,斜体和下划线等格式。但是,当我更改所选文本并单击新字体时,我希望它更改所有内容……因此,我不确定自己做错了什么。
字体列表和大小列表位于工具栏组合框中。我为上述两个控件中的每个控件创建了2个不同的事件处理程序,它们均运行同一行代码。
我更改了文本的事件处理程序,并更改了selectedindex。我还设置了richtextbox,因此hideselection设置为false,以便您始终可以看到要更改的字体。
我正在运行的代码是:
private void TcboSize_TextChanged(object sender, EventArgs e)
{
rtfDirections.SelectionFont = new Font(tcboFonts.Text, (float)Convert.ToDecimal(tcboSize.Text), rtfDirections.SelectionFont.Style);
}
这是更新
第一件事我有rtfdirections.hideselection = false;这是为了防止我的选择消失。我在表单的构造函数中进行了设置。
我已更改它,因此仅针对每个组合框,字体在SelectedIndex更改事件上更改。这将从富文本框中提取当前样式,并将字体设置为cbofont.text中的字体,并将大小设置为cboSize.text中的字体。
我没有跟踪任何先前的选择。处理选定的文本时,应将其分配给一个变量,然后确保所选内容保持该变量不变。
我还注意到,有时当我单击任何工具栏按钮时,我的文本选择就会消失,事实并非如此。正如您从顶部看到的那样,我已将其设置为不隐藏选择。
当他们选择新内容时,我应该清除选择内容吗?我以为,当您在Rich文本框中选择新文本时,它将覆盖先前选择的内容并使用新选择。
我在所有代码源上都设置了断点,并在所选文本中添加了监视,除非所选内容消失并且没有断点命中,否则所选文本永远不会改变。