---
title: "Dubbla rader i richTextBox"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/96707-dubbla-rader-i-richtextbox"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2004-02-06T11:40:30.000Z"
updated: "2004-02-08T15:41:00.000Z"
replies: 10
views: 318
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/96707-dubbla-rader-i-richtextbox"
---

# Dubbla rader i richTextBox

## #1 — saw, 2004-02-06T11:40Z

Hur gör jag för att kunna få dubbla rader(ung som att trycka på enter två gånger)?

```
if(e.KeyCode == Keys.Enter)
	{
	richTextBox1.Text = richTextBox1.Text + "\n\r";
	}
```

..fungerar inte. :q

Permalänk: https://www.webforum.nu/p/96707

## #2 — niko, 2004-02-06T12:13Z

Finns säkert nåt väldigt enkelt, men eftersom jag gillar krångliga lösningar så får du ett förslag som bygger på att du fångar och manuellt dubblerar alla return:

```
// ..
using System.Runtime.InteropServices;

public class dittForm : System.Windows.Forms.Form
{
	//Annan kod här.

	public class DittMessageFilter: IMessageFilter 
	{
		const int WM_KEYDOWN       = 0x100;
		const int WM_LEFTMOUSEDOWN = 0x201;
		private RichTextBox aOwner;
		public DittMessageFilter(RichTextBox aOwner)
		{
			this.aOwner=aOwner;
		}
		[DllImport("user32.dll", CharSet=CharSet.Auto)]
		private static extern IntPtr SendMessage(IntPtr hWnd,
			int msg,
			IntPtr wParam,
			IntPtr lParam);

		public bool PreFilterMessage(ref Message m) 
		{
			if (((m.Msg == WM_KEYDOWN)&&(m.WParam.ToInt32() == 13))
				&&(m.HWnd==aOwner.Handle))
			{
				//Dubblera return.
				SendMessage(aOwner.Handle,m.Msg, m.WParam, m.LParam);
				SendMessage(aOwner.Handle,m.Msg, m.WParam, m.LParam);
				return true;
			}
			return false; //Släpp igenom alla andra.
		}
	}

	private void dittForm_Load(object sender, System.EventArgs e)
	{
		Application.AddMessageFilter(new DittMessageFilter(dinRichTextBox));
		//Annan kod här.
	}

	//Annan kod här.

}
```

Jag har förutsatt att din rtf-box heter *dinRichTextBox* och formuläret *dittForm*.

Permalänk: https://www.webforum.nu/p/1270096

## #3 — saw, 2004-02-06T12:24Z

Hej niko och tack för snabbt svar.
Jag fick ett problem med en gång:

```
[DllImport
```

Error:

```
E:\Music_Translater\Translater\Form1.cs(26): The type or
 namespace name 'DllImport' could not be found (are you missing
 a using directive or an assembly reference?)
```

Jag lade coden under:

```
public class Form1 : System.Windows.Forms.Form
	{
```

Som du ser så har jag inte brytt mig om att ändra class Form1 till någonting annat, men det r ju inte där som felet är.

Permalänk: https://www.webforum.nu/p/1270101

## #4 — niko, 2004-02-06T12:25Z

Du måste ha med *using System.Runtime.InteropServices;*
 bland de övriga using-direktiven. Se ovan.

Sen behöver du inte ändra namn på nåt, det räcker med att:

```
Application.AddMessageFilter(new DittMessageFilter(<namnet på din rtf-box>));
```

ligger i ditt load-event.

Permalänk: https://www.webforum.nu/p/1270103

## #5 — Marcus E, 2004-02-06T12:31Z

\\n\\r är fel. Det ska vara \\r\\n.

Permalänk: https://www.webforum.nu/p/1270106

## #6 — saw, 2004-02-06T12:33Z

Ursäkta, jag såg inte det.
Nu fungerar den kanonbra.
Tack för din hjälp.

Permalänk: https://www.webforum.nu/p/1270107

## #7 — saw, 2004-02-06T12:35Z

niko(eller nåon annan)
Har du ett lika "enkelt" och bra script för tappen?
(som det är nu, så fungerar tappen inte i richtextboxen utan den går till nästa kontroll).

Permalänk: https://www.webforum.nu/p/1270109

## #8 — niko, 2004-02-06T12:45Z

> som det är nu, så fungerar tappen inte i richtextboxen utan den går till nästa kontroll

Men varför gör den det? Hos mig funkar tabben lika bra med eller utan filtret ..

/red: OK, nu fattar jag. Jag trodde du menade att det inte längre gick att tabba *till* boxen.

Det här kanske: <http://www.developerfusion.com/show/129/>

Permalänk: https://www.webforum.nu/p/1270116

## #9 — saw, 2004-02-06T17:16Z

Tack för hjälpen niko, men det fanns ett mycket enklare sätt.
Det finns en egenskap som heter AcceptsTab och den skulle vara på true.

Permalänk: https://www.webforum.nu/p/1270270

## #10 — niko, 2004-02-06T18:51Z

> **saw skrev:**
>
> det fanns ett mycket enklare sätt.

OK. Det finns också ett mycket enklare sätt att fixa radbrytningarna en krånglet med FilterMessage:

```
if(e.KeyCode == Keys.Enter)
{
	richTextBox1.[b]SelectedText[/b]=System.Environment.NewLine;
}
```

Permalänk: https://www.webforum.nu/p/1270323

## #11 — Marcus E, 2004-02-08T15:41Z

System.Environment.NewLine är exakt samma sak som "\\r\\n".

När jag testade fungerade dock "\\n\\r" ändå, trots att det är fel.

Det enda felet med koden i det första inlägget var att radbrytningen kom i slutet istället för vid markörpositionen.

Permalänk: https://www.webforum.nu/p/1271160

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/96707-dubbla-rader-i-richtextbox
