Posizionare il controllo RichTextBox della maschera
Imposta nome del modulo come Form1
nome
Set RichTextBox come RichTextBox1
Se non si desidera consentire all'utente di copiare la proprietà ShortcutsEnabled testo set RichTextBox1 False
Vai a Progetto-> Aggiungi componente, inserire il nome del componente ReadOnlyRichTextBox.cs
ReadOnlyRichTextBox.cs quindi aprire e incollare il codice seguente:
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);
}
}
}
Da Esplora soluzioni aprire il tuo "Form1.Designer.cs" e sostituire in questo file le seguenti righe:
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
con
this.richTextBox1 = new ReadOnlyRichTextBox();
e
System.Windows.Forms privati.RichTextBox richTextBox1;
con
privato ReadOnlyRichTextBox RichTextBox1;
fonte
2017-11-02 11:59:29
So che questo è un vecchio post ed è etichettato .NET 3.5. Tuttavia mi piacerebbe dare un aggiornamento a questo per chi lo ha cercato e può utilizzare .NET 4.0. In .NET 4.0, il controllo RichTextBox ora ha una proprietà IsReadOnlyCaretEnabled che ha come valore predefinito False, quindi il segno di omissione viene automaticamente nascosto se si imposta ReadOnly su True. Se vuoi un ReadText RichTextBox per mostrare il caret, puoi impostare IsReadOnlyCaretEnabled su True. – Jim
La mia risposta risolve il tuo problema? In tal caso, potresti considerare di contrassegnarlo come una risposta. È in C#, ma dovrebbe funzionare in VB, credo. :) – Pedro77
Ciao, puoi considerare di contrassegnare la mia risposta come soluzione? – Pedro77