你好,这个问题很简单。
private void button1_Click(object sender, EventArgs e){
Form1 frm = new Form1();
frmTopMost = true; //窗体前端显示设为true
frmShow(); //非模式对话框的形式显示
}
基本思路是。
将子窗体以Show()的方式显示出来,而不是ShowDialog()
然后同时,将窗体的TopMost设置为true。
这个属性掌管的就是窗体是否能在前端显示。
不需要的时候设置为false即可。
谢谢采纳。
使用 InputLanguageInstalledInputLanguages 可以得到当前安装的所有输入法。
使用 InputLanguageFromCulture 可以返回指定语言对应的输入法对象(这个输入法对象可以用来设置上面的CurrentInputLanguage),比如:InputLanguageFromCulture(CultureInfoGetCultureInfo("zh-CN")) 可以返回一个中文输入法对象,而InputLanguageFromCulture(CultureInfoGetCultureInfo("en-US")) 则可以返回一个英文输入法对象。
你的A,B是两个窗体吧,或者说你的虚拟键盘是窗体类型吧
下面的方法可以使窗体不接收焦点:
一。引用命名空间 using SystemRuntimeInteropServices;
二。引入API函数
[DllImport("user32dll")]
public static extern IntPtr GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32dll")]
public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int wndproc);
三。定义变量
public const int GWL_EXSTYLE = -20;
public const int WS_DISABLED = 0X8000000;
四。在B窗体初始化后,或者B窗体Load时
int exstyle = (int)GetWindowLong(thisHandle, GWL_EXSTYLE);
SetWindowLong(thisHandle, GWL_EXSTYLE, exstyle | WS_DISABLED);
这样就能使B窗体不接收焦点,从而A窗体也就保持了焦点
再给你个参考,别人用C#实现的屏幕键盘 (ScreenKeyboard)
>
thisAcceptButton
=
button1;
这样在WinForm窗口中,
按钮的状态会变成窗口的默认按钮,
只要按下Enter键,就会触发按钮的单击事件
这种效果与按钮获得焦点类似
当然,加个button1Focus();更好
以上就是关于C# WINFORM主窗体中点击按钮d出个子窗体,如何让子窗体前端显示,但同时主窗体可获取焦点并可 *** 作呢全部的内容,包括:C# WINFORM主窗体中点击按钮d出个子窗体,如何让子窗体前端显示,但同时主窗体可获取焦点并可 *** 作呢、C# winform中怎么实现当文本框获得焦点时,切换到中文输入法或英文输入法、winform窗体焦点问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)