C# Winform:
主窗体f1里一个Button,它的click事件里,要让form2显示出来:
Form2 f2=new Form2();
f2.Show();
------------------------------
当这个f2显示出来的时候,默认是f2夺取了主窗体f1的焦点,即f2出来就默认是Actived,
我现在要做的效果是:任何情况下,让f2 Show出来的时候,f1都不会失去焦点。如果需要Win32 API,请提供些代码或参考,谢谢。
主窗体f1里一个Button,它的click事件里,要让form2显示出来:
Form2 f2=new Form2();
f2.Show();
------------------------------
当这个f2显示出来的时候,默认是f2夺取了主窗体f1的焦点,即f2出来就默认是Actived,
我现在要做的效果是:任何情况下,让f2 Show出来的时候,f1都不会失去焦点。如果需要Win32 API,请提供些代码或参考,谢谢。
f2.Show(); 后边加一句
this.Activate();
f2.Show();
this.Focus();
this.Activate();
即可
f2.Show();
this.Activate();
f.Show();
this.Activate();
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
Activate();
}
}
//主窗体f1里一个Button,它的click事件里,要让form2显示出来:
Form2 f2=new Form2();
f2.Show();
//弹出f2 后为自己获得焦点
this.Focus();
//主窗体f1里一个Button,它的click事件里,要让form2显示出来:
Form2 f2=new Form2();
f2.Show();
//弹出f2 后为自己获得焦点
this.Focus();
//或者
this.Activate(); 两种方式都可以
当你鼠标移到某QQ好友头像处的时候,左边出来的那个显示该好友基本信息的那个窗体框,
用上面的方法,即f2 Show出来后,立即让Activate();
这样的话在f2 出来的那一杀那,明显可以看到f1的Active变化的过程了, 而QQ那个一点看不出来啊,请问还有好的办法不?
再次谢谢。
传个窗体对象应该可以试试看
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
Form2 f = new Form2();
ShowWindow(f.Handle, 4);