C# 同时保持两个窗体激活
来源:互联网 发布:淘宝举报卖家店铺 编辑:程序博客网 时间:2024/06/10 03:18
C#中,如何同时保持两个窗体激活?
基本的思想是当一个窗体激活时设置另一个窗体激活。这样相互激活。然而我们只是用单纯的C#代码是无法实现的,我们需要用到WinApI。
我们现在有Form1和Form3两个窗体,Form1作为起始窗体。
public partial class Form1 : Form
{
Form3 ff = new Form3();
public Form1()
{
InitializeComponent();
this.Load += new EventHandler(Form1_Load);
this.Activated += new EventHandler(Form1_Activated); }
void Form1_Activated(object sender, EventArgs e)
{//当Form1激活时,向Form3发送消息激活它
SendMessage(ff.Handle.ToInt32(), WM_NCACTIVATE, WA_ACTIVE, 0);
}
void Form1_Load(object sender, EventArgs e)
{
int activeForm = GetActiveWindow();
ff.Show();
ff.Activate();
//SendMessage(activeForm, WM_NCACTIVATE, WA_ACTIVE, 0);//我把这句话注释了也没有问题事实上是有这句话的,用于保持当前窗体激活
}
[DllImport("User32.dll")]
private static extern int GetActiveWindow();
const int WM_NCACTIVATE = 0x0086;
const int WA_ACTIVE= 1;
[DllImport("User32.dll")]
private static extern void SendMessage(int hwnd, int msg, int wParam, int lParam);
}
Form3的代码
void Form3_Activated(object sender, EventArgs e)
{
SendMessage(Application.OpenForms["Form1"].Handle.ToInt32(), WM_NCACTIVATE,WA_ACTIVE,0);
}
- C# 同时保持两个窗体激活
- WinForm特效:同时让两个窗体有激活效果
- WinForm特效:同时让两个窗体有激活效果
- C# 合并两个窗体
- 同时弹出两个以上的窗体
- 如何同时激活两个不同版本的MyEclipse 【MyEclipse2013和MyEclipse2014同时激活】
- C#当窗体为活动窗体时,激活定时器
- 同时只有一个窗体实例,再次打开激活已打开窗体的范例
- swing 禁止同时打开两个相同主窗体
- C#中同时操作两个数据库
- C#中非MDI激活已打开的窗体
- C#中非MDI激活已打开的窗体
- C#两个窗体间的通信
- C#事件调用,实现两个窗体间传值
- C#中两个窗体将相互跳转
- c# 两个窗体之间的传值
- C#两个窗体之间值通信
- C#中两个窗体将相互跳转
- Exception in thread "main" java.lang.NoClassDefFoundError错误信息
- 图片编辑网站
- 考研数学145分之路:暑期精读大学数学课本
- FSAA (FullSceneAnti-aliasing)全屏抗锯齿技术
- 关于ashx文件的点点滴滴
- C# 同时保持两个窗体激活
- 给央视挑错
- perl 操作xml实例
- android 使用MideaPlayer API来播放简单的应用
- ubuntu下软件包管理
- 100个程序员学习的网站
- 强类型与弱类型
- 银行系统功能说明
- PHP测试题目