sawMedlem sedan mars 20011 880 inlägg Via en timer så ligger en class hela tiden och kolla vilka knappar som trycks
ner.
if (e.KeyPressedCode == 13 && !e.ShiftKeyPressed)
{
bool cancel = false;
if (EnterKeyEvent != null)
{
EnterKeyEventArgs args = new EnterKeyEventArgs();
EnterKeyEvent(this, args);
cancel = args.Cancel;
}
e.ReturnValue = !cancel;
}
Jag tror att detta fungerar. Mitt problem, är att jag ville ha med mera
allternativ t ex för delite, men jag kan inte få den att fungera.
Jag försökte att lägga in en MessageBox, för att få se vilka numer som vilka
tangenter står för, men ingenting händer.
Tips?
PhorpherMedlem sedan feb. 20002 300 inlägg Används Keys-enumen istället.
if(e.KeyPressedCode == Keys.Enter)
sawMedlem sedan mars 20011 880 inlägg Det är märkvärdigt, men jag får det inte att fungera.
Denna class är kopplad till en timers tick
private void SetupKeyListener()
{
if (!setup)
{
webBrowser1.Document.Body.KeyDown += new HtmlElementEventHandler(Body_KeyDown);
setup = true;
}
}
Jag vet att den fungarar, jag la in en messageboxså..
Men här fungerar det inge
private void Body_KeyDown(object sender, HtmlElementEventArgs e)
{
//if (e.KeyPressedCode == (int)Keys.Delete)
MessageBox.Show("Body_KeyDown");
if (e.KeyPressedCode == 13 && !e.ShiftKeyPressed)
{
bool cancel = false;
if (EnterKeyEvent != null)
{
EnterKeyEventArgs args = new EnterKeyEventArgs();
EnterKeyEvent(this, args);
cancel = args.Cancel;
}
e.ReturnValue = !cancel;
}
label1.Text = e.KeyPressedCode.ToString();
}
Här händer ingenting. Jag har keypreview till true såväll i formen som i mdi-
formuläret.
Det verkar som om prenumenationen av webBrowser1.Document.Body.KeyDown += new HtmlElementEventHandler(Body_KeyDown);
inte" tar".
Några idéer?
PhorpherMedlem sedan feb. 20002 300 inlägg Låter som ett fokusproblem. Har din webbrowser-kontroll fokus när du försöker trycka på en tangent?
sawMedlem sedan mars 20011 880 inlägg Även om jag i SetupKeyListener lägger in webBrowser1.Focus(); så händer ingenting.
Jag hadde den i bRedigera, en knapp som gör att webBrowser1 kommer i redigeraläge.
SetupBrowser("On");
label1.Text = "";
ny = false;
BytEnable();
webBrowser1.Focus();
string sText = richTextBox1.Text;
webBrowser1.DocumentText = sText;
//SetupBrowser
private void SetupBrowser( string what)
{
//webBrowser1.DocumentText = "<html><body></body></html>";
webBrowser1.DocumentText = "";
doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
//doc.designMode = "On";
doc.designMode = what;
webBrowser1.Document.ContextMenuShowing +=
new HtmlElementEventHandler(Document_ContextMenuShowing);
if (what == "On")
toolStrip1.Visible = true;
else
toolStrip1.Visible = false;
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1.IsWebBrowserContextMenuEnabled = false;
webBrowser1.WebBrowserShortcutsEnabled = false;
}
Det är helt dött i Body_KeyDown
PhorpherMedlem sedan feb. 20002 300 inlägg Tror vi går tillbaka nåt steg här nu.
Varför har du en timer som läser av tangenttryckningar? Du behöver ingen timer eftersom du har en eventhanterare som reagerar så fort du trycker på en tangent. Vad är det du vill göra förnågot?
sawMedlem sedan mars 20011 880 inlägg Jag har bara ett dumt svar på denna fråga.
Jag hittade denna koden när jag letade efter hur jag skulle kunna editera webbrowsern.
Det som är underligt är att till en början så fick jag upp messageboxen, men sen så
slutade den att fungera.