在我的C#Windows窗體應用程序我有一個窗體中的用戶輸入數據要保存在數據庫中的許多TextBox控件。我希望用戶能夠通過向上和向下的箭頭改變焦點到每個這些文本框。我可以爲向下箭頭做,所以當用戶按下箭頭焦點設置爲更高的tabindex通過SendKey(「Tab」)的文本框。但我不能這樣做的UP箭頭,所以當用戶按向上箭頭焦點設置爲較低tabindex的文本框,請任何幫助?如何發送焦點來控制tabindex低於C#窗體窗體應用程序中的當前控件?
3
A
回答
9
而不是使用SendKey(),您可以使用Control.SelectNextControl()
,並使用forward=false
倒退。
4
你可以嘗試像SendKeys.Send("+{TAB}");
這將模擬Shift鍵+ Tab鍵所以應該把你帶回
2
您可以發送Shift + Tab鍵,諮詢有關如何使用的SendKeys做到這一點的文檔
http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx
4
在文本框之間移動的最佳方式是使用 Control.SelectNextControl +轉發參數。
檢查下面的代碼,每次用戶按向下鍵在窗體上,下控制被激活:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
Control ctl;
ctl = (Control)sender;
if (e.KeyCode == Keys.Down)
{
ctl.SelectNextControl(ActiveControl, true, true, true, true);
}
else if (e.KeyCode == Keys.Up)
{
ctl.SelectNextControl(ActiveControl, false, true, true, true);
}
}
不要忘了設定的KeyPreview的形式來實現。
+0
只需注意:要使用此表單的「KeyPress」必須設置爲「true」:) – Jack
相關問題
- 1. 在窗體窗體應用程序中重複控制
- 2. 如何將焦點設置爲Windows窗體應用程序中的控件?
- 3. 產生窗體(Windows窗體)的控制檯應用程序?
- 4. 從Windows窗體應用程序C控制檯應用程序#
- 5. 在窗體窗體應用程序控制臺
- 6. C#Windows窗體:用於製表控制
- 7. 線程調用窗體窗體控件
- 8. c#窗體窗體應用程序中的焦點或選擇文本框
- 9. C#窗體控件
- 10. 隱藏Windows窗體應用程序中的控制檯窗口
- 11. 如何從Windows窗體應用程序在C#中關閉控制檯窗口?
- 12. 使用Delphi從所有窗口窗體獲取焦點控制
- 13. c#窗體窗體應用程序
- 14. C#窗體窗體應用程序
- 15. 如何在控制檯應用程序中的Windows窗體應用程序中指定最後一個窗體?
- 16. 在Windows窗體應用程序中使用C#的WebBrowser控件#
- 17. 如何連接控制檯應用程序和Windows窗體應用程序C#
- 18. 控件在C#窗口程序中隱藏窗體的事件
- 19. 與控制檯應用程序Windows窗體應用程序
- 20. 從窗體發送KeyEvent到控件
- 21. 如何在Windows窗體應用程序中獲取當前窗體?
- 22. 保存/加載在C#窗體窗體內製作的控件
- 23. 如何從C#中的其他窗體窗口應用程序控制應用程序?
- 24. 用戶控件如何將焦點傳遞給父窗體上的控件?
- 25. 如何在Windows窗體應用程序中迭代控件?
- 26. 如何在Windows窗體應用程序中顯示MFC控件?
- 27. 將顏色應用於窗體窗體應用程序中的窗體
- 28. 如何確定窗體上的哪個控件具有焦點?
- 29. C#代碼編輯器控制窗體應用程序
- 30. C#控制檯在窗體上彈出應用程序
請問您可以發佈更改**向下箭頭(工作)**和**向上箭頭(不工作)**的代碼焦點的代碼。然後,我們可以嘗試弄清*爲什麼*後者不起作用 – Adam
如果您可以爲向下箭頭操作,您應該可以使用向上箭頭來操作。聽起來就像您必須單獨設置所有選項卡索引正確..也如果我沒有記錯.. C#GUI的行爲有趣,當你放棄/分配選項卡索引的控制不順序..或者它的ASP.NET應用程序我有一個類似的問題..但是顯示什麼代碼/關鍵事件您試圖在 – MethodMan
上捕獲此信息,但這不會有幫助,但使用UP/DOWN更改焦點通常不是一個好主意。例如,對於單行文本框,UP/DOWN用作LEFT/RIGHT,所以我不建議將行爲更改爲TAB。 – ken2k