Form
içinde bir WebBwoser
var ve bir menü öğesi için kısayol olarak kullanmak için Ctrl + O tuş bileşimini yakalamak istiyorum. Benim sorunum, WebBrowser
'a tıklarsam ve Ctrl + O tuşlarına basarsam, menü öğemi ne yapmak yerine, Internet Explorer iletişim kutusu açılır. Benim Form
KeyPreview
özelliği true
olarak ayarlanmış. Ayrıca, KeyDown
olay için bir olay işleyicisi ekledim, ancak WebBrowser
tıklattıktan sonra çağrılmayı durdurur. Bunu nasıl düzeltebilirim?WebBrowser "top çalma" formumdan keyDown olayları
5
A
cevap
7
Bu, sorununuzu çözmelidir. Web tarayıcısının hızlandırıcı tuşlarını devre dışı bıraktı.
webBrowser1.WebBrowserShortcutsEnabled = false;
Sen de
IsWebBrowserContextMenuEnabled
gerekip gerekmediğini keşfetmek isteyebilirsiniz
.
Tarayıcıda etkin olmak için bazı hızlandırıcı tuşlarına ihtiyacınız varsa, aşağıdakiler de sorununuzu çözebilir. Ancak, bu yaklaşım odağı yakalamak için bir şey gerektirir. MessageBox.Show()
ve dialog.ShowDialog()
private void DoSomething()
{
webBrowser1.PreviewKeyDown += new PreviewKeyDownEventHandler(webBrowser1_PreviewKeyDown);
}
private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.Control && e.KeyCode == Keys.O)
{
menuItem.PerformClick();
// MessageBox.Show("Done");
}
}
2
Sen ProcessCmdKey yöntemi geçersiz olabilir işi yapabilir:
protected override bool ProcessCmdKey(ref Meassage msg, Keys keyDaya)
{
//Trap for Key down
return true; //false if you want to suppress the key press.
}
Peki, bir tek çözüm bu mu? Kullanıcının Ctrl + F tuşlarına basarak arama gibi başka şeyler yapmasını istiyorum. – Juan
+1 ağ hızına göre beni yenersiniz, tarayıcım, MSDN'deki bağlantıyı bulmaya çalıştığımda kilitlenir :( –
Yukarıda düzenlenmiş cevabımda gösterildiği gibi 'PreviewKeyDown'ı' webBrowser'de yakalayabilirsin. –