Действительно ли возможно разработать текст в richtextbox во время проектирования?

У меня есть Система. Windows. Формы. RichTextBox, который я хочу использовать для отображения некоторых инструкций моим пользователям приложения.

Действительно ли возможно установить часть текста, который я ввожу во время проектирования, чтобы быть полужирным?

Или у меня нет опции, кроме как сделать это во времени выполнения?

7
задан ErikE 12 August 2010 в 23:53
поделиться

3 ответа

Вы, безусловно, можете создать документ RTF в редакторе RTF (например, WordPad), сохранить файл, открыть его как текстовый / простой файл и скопировать документ RTF в свойство RtfText вашего RichTextBox во время разработки.

Но я не советую этого. Таким образом, в вашем коде будет большой объем данных, и в этом нет никакого смысла. В конце концов, используйте ресурс, для этого они и существуют. Вы можете связать отдельные ресурсы для управления свойствами во время разработки.

4
ответ дан 6 December 2019 в 15:19
поделиться

Добавьте новый класс в свой проект и вставьте в него код, показанный ниже. Скомпилируйте. Переместите новый элемент управления из верхней части панели инструментов на вашу форму. Выберите свойство RichText и нажмите на кнопку с точками. Это приведет к запуску Wordpad. Отредактируйте текст, наберите Ctrl+S и закройте Wordpad. Имейте в виду, что дизайнер Visual Studio не функционирует, пока открыт Wordpad.

Imports System.ComponentModel
Imports System.Drawing.Design
Imports System.IO
Imports System.Diagnostics

Public Class MyRtb
    Inherits RichTextBox

    <Editor(GetType(RtfEditor), GetType(UITypeEditor))> _
    Public Property RichText() As String
        Get
            Return MyBase.Rtf
        End Get
        Set(ByVal value As String)
            MyBase.Rtf = value
        End Set
    End Property

End Class

Friend Class RtfEditor
    Inherits UITypeEditor

    Public Overrides Function GetEditStyle(ByVal context As ITypeDescriptorContext) As UITypeEditorEditStyle
        Return UITypeEditorEditStyle.Modal
    End Function

    Public Overrides Function EditValue(ByVal context As ITypeDescriptorContext, ByVal provider As IServiceProvider, ByVal value As Object) As Object
        Dim fname As String = Path.Combine(Path.GetTempPath, "text.rtf")
        File.WriteAllText(fname, CStr(value))
        Process.Start("wordpad.exe", fname).WaitForExit()
        value = File.ReadAllText(fname)
        File.Delete(fname)
        Return value
    End Function
End Class
9
ответ дан 6 December 2019 в 15:19
поделиться

Я нашел эту ссылку на codeproject очень полезной:

http://www.codeproject.com/KB/miscctrl/richtextboxextended.aspx

Это полностью рабочий rtf - элемент управления редактированием построен на основе стандартного элемента управления RichtTextBox .net с хорошо структурированным кодом. Он показывает, как использовать почти все доступные функции элемента управления.

Однако он написан на C #, а не на vb.net, но вам обязательно стоит взглянуть.

1
ответ дан 6 December 2019 в 15:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: