C#/.NET:TextBox 未“聚焦”;进程启动后
单击“btnSearch”按钮后打开记事本后遇到问题。
这个想法是,一旦我单击按钮“btnSearch”,即使在主窗口之外启动/打开进程后,文本框“txtSearch”也应该“聚焦”。
这是我的代码:
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("notepad");
txtSearch.Focus(); // not working
}
有什么建议吗?
I am having a problem after opening the notepad once I click the button "btnSearch".
The idea is that once I clicked the button 'btnSearch', the textbox 'txtSearch' should be 'focused' even after a process was initiated/opened outside the main window.
Here's my code:
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("notepad");
txtSearch.Focus(); // not working
}
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在您的 Page_Load 事件中尝试
然后将其添加到您的页面或 BasePage 或其他内容
In your Page_Load event try
Then add this to your page or BasePage or whatever
以下是您需要的代码。这可以通过互操作服务来完成
The below is the code you would need. This could be done through interop services
你尝试过吗
?
您的 TextBox 是否位于 GroupBox 中?
Have you tried
?
Is your TextBox within a GroupBox?
应用程序无法从其他应用程序“窃取”焦点(自 Windows XP 起),它们所能实现的最接近的功能是闪烁任务栏,这可以通过 P/Invoke 实现:
然后将表单的
Handle
传递给它Applications cannot "steal" focus from other applications (since Windows XP), the closest they can achieve is flashing the taskbar, which is possible via P/Invoke:
Then pass it the form's
Handle
查看
TabIndex
属性。在启动应用程序时需要聚焦的控件上使用值 0。Look at the
TabIndex
property. Use a value of 0 on the control you need focused when you start the application.