У меня есть Система. Windows. Формы. RichTextBox, который я хочу использовать для отображения некоторых инструкций моим пользователям приложения.
Действительно ли возможно установить часть текста, который я ввожу во время проектирования, чтобы быть полужирным?
Или у меня нет опции, кроме как сделать это во времени выполнения?
Вы, безусловно, можете создать документ RTF в редакторе RTF (например, WordPad), сохранить файл, открыть его как текстовый / простой файл и скопировать документ RTF в свойство RtfText
вашего RichTextBox
во время разработки.
Но я не советую этого. Таким образом, в вашем коде будет большой объем данных, и в этом нет никакого смысла. В конце концов, используйте ресурс, для этого они и существуют. Вы можете связать отдельные ресурсы для управления свойствами во время разработки.
Добавьте новый класс в свой проект и вставьте в него код, показанный ниже. Скомпилируйте. Переместите новый элемент управления из верхней части панели инструментов на вашу форму. Выберите свойство 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
Я нашел эту ссылку на codeproject очень полезной:
http://www.codeproject.com/KB/miscctrl/richtextboxextended.aspx
Это полностью рабочий rtf - элемент управления редактированием построен на основе стандартного элемента управления RichtTextBox .net с хорошо структурированным кодом. Он показывает, как использовать почти все доступные функции элемента управления.
Однако он написан на C #, а не на vb.net, но вам обязательно стоит взглянуть.