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.
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.
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).