Место управления RichTextBox в форме
Установить имя формы, как Form1
имя
Set RichTextBox в richTextBox1
Если вы не хотите, чтобы позволить пользователю копировать текст набор richTextBox1 ShortcutsEnabled свойство Ложный
Перейти к project-> Добавить Компонент, введите имя компонента ReadOnlyRichTextBox.cs
Затем откройте ReadOnlyRichTextBox.cs и вставьте следующий код:
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace <Replace with your app namespace>
{
public partial class ReadOnlyRichTextBox : RichTextBox
{
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
public ReadOnlyRichTextBox()
{
this.ReadOnly = true;
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
HideCaret(this.Handle);
}
}
}
От Решение Explorer открыть свой "Form1.Designer.cs" и заменить в этом файле следующие строки:
this.richTextBox1 = новый System.Windows.Forms.RichTextBox();
с
this.richTextBox1 = новый ReadOnlyRichTextBox();
и
частные System.Windows.Forms.RichTextBox richTextBox1;
с
частного ReadOnlyRichTextBox richTextBox1;
Я знаю, что это старый пост и помечен как .NET 3.5. Однако я хотел бы дать обновление для тех, кто его искал, и может использовать .NET 4.0. В .NET 4.0 элемент управления RichTextBox теперь имеет свойство IsReadOnlyCaretEnabled, которое по умолчанию имеет значение False, поэтому каретка автоматически скрывается, если вы установите ReadOnly на True. Если вы хотите, чтобы ReadOnly RichTextBox показывал карету, вы можете установить IsReadOnlyCaretEnabled в значение True. – Jim
Мой ответ решает проблему? Если это так, вы можете рассмотреть его как ответ. Это на C#, но я должен работать в VB. :) – Pedro77
Привет, можете ли вы рассмотреть вопрос о маркировке моего ответа в качестве решения? – Pedro77