C# /. NET'te bir Windows uygulamasına sahibim. Farklı formlar arasında gezinmek için bazı klavye kısayolları yapmam gerekiyor. .NET'te klavye kısayollarını nasıl yapabilirim?.NET'teki klavye kısayolları nasıl yapılır?
cevap
P/Invoke özelliğini register a global hotkey on the system'a kullanabilirsiniz. Küresel bir şey istemiyorsanız, KeyPress olaylarını her zaman tüm formlarınızda işleyebilirsiniz.
klavye kısayollarını yapmak Control.KeyPress olayını işlemek ve tuş kombinasyonunu inceleyebilirsiniz:
Ben senin yolu kopyalama ve yapıştırma işi gibi Control ?
tip kısayolları uygulamaya çalışırken varsayıyorum?
Her forma eklediğiniz jenerik bir KeyDown
ve KeyUp
işleyicisini oluşturabilirsiniz. Her zaman bir KeyDown
anahtarını bir listede saklayın (bir anahtarı basılı tutun ve diğerine çarpmak için). Listeye anahtar eklediğinizde, kısayol tuş kombinasyonlarınızdan herhangi birini içeren listeyi kontrol edin. Eğer öyleyse ihtiyacınız olan kodu çalıştırınız. Her KeyUp
etkinlik için
, listeden çıkarmadan emin olun (yalnızca KeyDown
eklemeler üzerinde kısayol için kontrol edilmesi gereken
DÜZENLEME:. hızlı bir arama yaptım ve bu aynı çözüm uygulamaya bulundu:
biz adını bilmeyen o kötü sitesinde olduğu gibiclass KeyboardShortcuts
{
public static void Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (m_keysDownList.Contains(e.Key) == false)
{
m_keysDownList.Add(e.Key);
Debug.WriteLine(e.Key.ToString() + " Down");
}
CheckForKeyCombos();
}
public static void Window_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
m_keysDownList.Remove(e.Key);
Debug.WriteLine(e.Key.ToString() + " Up");
}
public static void CheckForKeyCombos()
{
if (m_keysDownList.Contains(System.Windows.Input.Key.LeftCtrl))
{
if (m_keysDownList.Contains(System.Windows.Input.Key.A))
{
if (m_keysDownList.Contains(System.Windows.Input.Key.C))
{
// Clear list before handeling (Dialogue boxes
// can hinder the listening for key up events, leaving
// keys in list - so clear first).
ClearKeysDownList();
// Handle Ctrl + A + C Combo
HandleCtrlACCombo();
}
}
}
}
private static void ClearKeysDownList()
{
m_keysDownList.Clear();
}
public static void HandleCtrlACCombo()
{
if (handleCtrlACComboDelegate != null)
{
handleCtrlACComboDelegate();
}
}
// Need a delegate instance for each combo
public delegate void HandleCtrlACComboDelegate();
public static HandleCtrlACComboDelegate handleCtrlACComboDelegate;
private static List<System.Windows.Input.Key> m_keysDownList = new List<System.Windows.Input.Key>();
}
Bu here alıntı olduğunu tam çözüm görebilirsiniz (sadece altına gidin.
Böyle şeyler genellikle windows kancaları kullanılarak yapılır. Ebeveyninizin formu kullanıcı alt formları açmak için seçer düğmeleri veya menüler varsa, bir ve işareti ekleyerek çok basit bir kısayol tuşu ekleyebilirsiniz
: Burada onlarla çalışmak nasıl gösteren bir MSDN makale .Text özniteliğine &
.
Örneğin, Options
gibi bir düğmeniz varsa, metnini aşağıdaki gibi değiştirebilirsiniz: &Options
. Bunu yapmak, üst formdaki düğmeyi Alt + O yapacaktır.
Alternatif kısayol tuşlarını isterseniz gibi Ctrl + O bir form açmak için, ana formun KeyDown
olaya abone ve bu tuş kombinasyonunu aramak gerekir:
private void FormMain_KeyDown(object sender, KeyEventArgs e)
{
if (ModifierKeys == Keys.Control && e.KeyCode == Keys.O))
// open form
}
Formunuzun KeyPreview
özelliğini true olarak ayarlamanız gerekebileceğini unutmayın.
Son olarak, araç şeridi menü öğeleri, özellikler panelinde tanımlayabileceğiniz bir ShortcutKeys
özelliğine sahiptir ve VS, menü öğesini etkinleştirmek için klavye kısayolunu desteklemek için gerekli kodu otomatik olarak Designer dosyasına ekler.
Adım No.1
if (e.Alt && e.KeyCode == Keys.C)
{
//your function
}
- 1. PyQt5: Klavye kısayolları w/QAction
- 2. : Özel klavye kısayolları çalışmıyor mu?
- 3. HTML5 uygulamanız için klavye kısayolları oluşturma?
- 4. Google Chrome/Chromium Extensions'taki Klavye Kısayolları
- 5. VS 2015 Task Runner klavye kısayolları nelerdir?
- 6. XCode Hata Ayıklama Kısayolları
- 7. Xcode: İşlem görünümündeki değişikliklerde gezinmek için klavye kısayolları
- 8. COCOA Mac Uygulamasındaki NSSegmentedControl Düğmesi için Klavye Kısayolları
- 9. "Dosya Ara" içinde gezinme, klavye kısayolları ile Eclipse ile sonuçlanır
- 10. Selenium ve Ruby ile krom için klavye kısayolları gönderme
- 11. P4 Diff/P4 için klavye kısayolları Klasör Diff
- 12. Hata ayıklama geçmişi için Eclipse başlatma kısayolları
- 13. Matplotlib'deki klavye kısayollarını nasıl devre dışı bırakırım?
- 14. Klavye kısayolu IntelliJ
- 15. OSX klavye kısayolu arka plan uygulaması, nasıl yapılır
- 16. Webbrowser Denetim çalma kısayolları
- 17. Visual Studio 2005+ yer işareti klavye kısayolları neden diğer belgelerdeki yer imlerine gider?
- 18. Eclipse: Düzenleyici klavye kısayoluyla bağlantı?
- 19. Android Studio'dan dışa aktarma kısayolları
- 20. PuTTY ssh'de boru nasıl yapılır?
- 21. Visual Studio 2010'daki sekme gruplarını klavye ile işleme nasıl?
- 22. iOS'ta klavye nasıl programlanır?
- 23. Programatik olarak klavye kısayolunu Mac'e ekleyin Sistem Tercihleri
- 24. WPF/XAML içinde Alt tuş kısayolları oluştur
- 25. Klavye anahtarını klavye kombinasyonuna çevirin
- 26. devre dışı bırak ubuntu klavye her zaman belirli tuşlarına çünkü
- 27. Tkinter Mac uyumlu menü kısayolları (cmd + tuşu) nasıl edinilir
- 28. LSUIElement, YES olarak ayarlandığında kısayolları nasıl ele alabilirim?
- 29. Android Studio, Mac için tüm kısayolları çöker
- 30. JavaScript'te klavye girişi nasıl alınır?
cevabınızı genişletmek Lütfen
Adım No.2 ayarlayın. –