webForumDet fria alternativet

readonly richtextbox

.NETur .NET

1 svar · 452 visningar · startad av henrikjohansson

Medlem sedan maj 2000360 inlägg
Frågan#1

Jag använder en richtextbox för att förhandsvisa ett rtf dokument.. jag använder mig då av readonly men man fortfarande se och markera text.. även ändra storleken på bilder osv.
Jag vill altså bara visa dokumentet.. man skall inte kunna göra något.. Inte markera, inte ändra storlek på bilder, inte skriva text osv.

Medlem sedan juni 20022 599 inlägg
#2

Finns antagligen nåt enklare men en "fullösning" är ju att filtrera bort mus- och tangentbordsevents innan de når kontrollen:

public class dittForm : System.Windows.Forms.Form
{
	public class DittMessageFilter: IMessageFilter 
	{
		const int WM_KEYDOWN       = 0x100;
		const int WM_LEFTMOUSEDOWN = 0x201;
		private RichTextBox aOwner;
		public DittMessageFilter(RichTextBox aOwner)
		{
			this.aOwner=aOwner;
		}

		public bool PreFilterMessage(ref Message m) 
		{
			if (((m.Msg == WM_KEYDOWN)||(m.Msg == WM_LEFTMOUSEDOWN))
                                                 &&(m.HWnd==aOwner.Handle))
				return true;
			return false;
		}
	}

	private void dittForm_Load(object sender, System.EventArgs e)
	{
		Application.AddMessageFilter(new DittMessageFilter(dinRichTextBox));
	}

}
130 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)