У меня есть richtextbox на winform. С#
Привет,
У меня есть richtextbox с помещенной на форму в C#. У меня есть проблема с изменением шрифта. вот некоторая предыстория того, что работает.
Я добавил полосу инструментов с кучей кнопок и 2 полями со списком. первое поле со списком заполняется именем всех установленных шрифтов на компьютере. второе поле со списком предназначено для размера шрифта. Я могу добавить маркеры, установить стиль шрифта полужирный, курсив, подчеркивание. Я также могу установить правое, левое и центрирование текста. Все это прекрасно работает.
Проблема, с которой я сталкиваюсь, находится в моем richtextbox, когда я пытаюсь изменить шрифт или размер шрифта. Сначала я выбираю текст, который хочу изменить шрифтом, щелкаю соответствующий шрифт в поле со списком, и шрифт меняется. Затем я нажимаю на выпадающий список для размера, и это работает, как и ожидалось. Вот моя проблема. Теперь, когда я изменил шрифт и размер шрифта. Теперь я выбираю новый раздел текста в rich text и нажимаю на раскрывающийся список шрифта, и весь текст теперь меняется на тот шрифт, который я только что щелкнул. Он полностью игнорирует то, что выбрано. У меня есть 1 строка кода на textchange и выбранный индекс, измененный для обоих полей со списком.
Это должно просто изменить шрифт с помощью sytle, который уже находится в richtextbox, и размер другой текстовой части поля со списком
rtfDirections.SelectionFont = new Font(tcboFonts.Text, (float)Convert.ToDecimal(tcboSize.Text), rtfDirections.SelectionFont.Style);
Что я уже пробовал:
Не знаю, что я должен попытаться сделать, чтобы это сработало так, как я ожидаю.
BraveKnightFSJ
Хорошо.
Первое, что у меня есть rtfdirections.hideselection = false; это чтобы мой выбор не исчез. У меня есть этот набор в конструкторе формы.
Согласно вопросу Билла.
У меня есть 2 элемента управления combo box в toolstrip. У меня есть поле со списком инструмента-полоски для имя шрифта и полосы поля со списком для размеров. Я изменил его так, что шрифт меняется в событии SelectedIndex change. Это позволяет извлечь текущий стиль из поля rich text и установить шрифт на шрифт из файла cbofont.text, а размер-из файла cboSize.text.
Я не отслеживал никакого предыдущего выбора. Когда вы имеете дело с выделенным текстом, Если вы назначаете его переменной, то убедитесь, что выделение остается в этой переменной.
Я также заметил, что иногда, когда я нажимаю любую кнопку toolstrip, мой текстовый выбор просто исчезает, чего не должно быть. как вы могли видеть сверху, я установил его так, чтобы он не скрывал выделение.
Нет, я не очищал выбор. Я предположил, что при выборе нового текста в поле форматированного текста он просто перепишет то, что было выбрано ранее, и будет использовать новое выделение.
Я поставил точки останова на всех источниках кода и добавил часы к выбранному тексту, и выбранный текст никогда не менялся, если только выбор просто не исчез и не было никаких точек останова.