我在我的主窗體中使用ProcessCmdKey爲應用程序測試某些鍵並給予空間,右側,左側和其他幾個特殊處理。即使用戶在嵌套的用戶控件集合內輸入TextBox,也會調用主窗體中的ProcessCmdKey。當他們專注於TextBox控件時,我不想處理Space鍵,因爲他們永遠無法輸入空格。如何在應用程序範圍內測試當前關注窗口的類型?在WinForms c#中獲得集中控制的最快方法?
4
A
回答
6
你可以利用這個得到的窗口句柄:
[DllImport("user32.dll")]
private static extern IntPtr GetFocus();
然後你就可以用Control.FromHandle取得與該句柄相關聯的.NET控件(如果有的話)。
0
找到東西,似乎工作:
[DllImport("user32.dll")]
static extern IntPtr GetFocus();
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
IntPtr wndHandle = GetFocus();
Control focusedControl = FromChildHandle(wndHandle);
if(focusedControl is DevExpress.XtraEditors.TextBoxMaskBox)
{
return base.ProcessCmdKey(ref msg, keyData);
}
...
}
相關問題
- 1. 在javascript中獲取集合的子集的最快方法
- 2. 在GeoDjango中獲得最近幾何點的最快方法
- 3. 在控制檯中繪製字符的最快方法(framebuffer)?
- 4. 獲得Ajax回調的最快方法
- 5. 獲得登錄Java的最快方法?
- 6. 在新的活動中獲得TouchEvents的最快方法
- 7. 在bash中獲得git狀態的最快方法
- 8. asp.net中的c#winforms控制循環方法
- 9. 複製C++中的中小型內存塊的最快方法
- 10. 在Enterprise Architect中獲取所有版本控制軟件包的最快方法。
- 11. c#獲取整數列表子集的最快方法
- 12. 在Python或C++中獲取像素顏色的最快方法?
- 13. 在控件集合中找到文本匹配控件的最快方法
- 14. 最快的方法來獲得最接近1在Python中的字典鍵
- 15. c#winforms如何獲得最高ColumnIndex
- 16. 做收集減法的最快方法
- 17. 在WinForms中控制vs UserControl?
- 18. 在Python 2.7中獲得輸入的最快方式是什麼?
- 19. 在Win7 64位上獲得XAMPP或WAMP的最快方法?
- 20. 最快獲得力量的方式2
- 21. R - 獲得向量中最大n個元素索引的最快方法
- 22. 控制器中的方法來獲得當前的url
- 23. C#winforms在面板中更改用戶控件作爲方法
- 24. 檢查數據庫集中是否存在最快的方法
- 25. 在Android中查詢大型數據集的最快方法
- 26. 在SQL Server表中序列化數據集的最快方法
- 27. 獲得由Voronoi線段形成的凸多邊形集合的最快方法
- 28. 的WinForms:最好控制用於列表數據快速
- 29. 在Python中排序最快的方法
- 30. 在python中迭代的最快方法
參見http://stackoverflow.com/questions/435433/what-is-the-preferred-way-to-find-focused-control-in -winforms-應用 – RenniePet 2015-04-01 05:45:56