C#右下角弹窗不影响主程序的另类实现
来源:互联网 发布:订货系统源码 编辑:程序博客网 时间:2024/03/29 22:35
今天做一个右下角弹窗体的功能,要求新窗体不能抢了现有活动窗体的焦点,试验了网上的几种方法,效果都不明显。包括:
1、protected override CreateParams CreateParams
{
get
{
var cp = base.CreateParams;
cp.ExStyle |= WS_EX_NOACTIVATE;
return cp;
}
}
2、
protected override bool ShowWithoutActivation
{
get
{
return false;
}
}
3、
protected override void WndProc(ref Message m)
{
if (m.Msg ==WM.WM_SETFOCUS || m.Msg ==WM.WM_ACTIVATE)
{
Win32.SendMessage(this.Handle,WM.WM_NCACTIVATE, 0, 0);
return;
}
base.WndProc(ref m);
}
private void MessageForm_Shown(object sender, EventArgs e)
{
Win32.SendMessage(this.Handle, WM.WM_NCACTIVATE, 0, 0);
}
以上三种方法在我这里均不起作用。还有一种用SetActiveWindow的方法,虽然可以把焦点抢回主窗体,但是会引发主窗体的OnActive事件,由于此事件已另有处理,所以也不适用。
后采用了异步方式打开窗体,
Task task = new Task(() =>
{
MessageForm mf = new MessageForm();
mf.TopMost = true;
mf.ShowDialog();
});
task.Start();
效果不错,值得注意的是mf.ShowDialog()不能用mf.Show(),否则新窗体界面会假死。
- C#右下角弹窗不影响主程序的另类实现
- C#九九乘法表的另类实现
- c# 实现在屏幕的右下角的提示窗口
- c# 的另类写法
- C#实现窗口在右下角不越界
- C# DataSet的另类技巧
- KWIC:基于主程序/子程序风格的实现
- c#实现登陆之后,关闭登陆界面并且进入主程序
- c# 实现文件柜另类方法一则
- C#中 ,窗体运行时,右下角出现对话框功能是怎么实现的?
- C# 漂亮的右下角提示框
- C#开发右下角显示图片的应用程序
- 另类的实现透明窗体
- 另类的二级域名实现方法
- 实现分页的另类代码
- 实现分页的另类代码
- div的placeholder另类实现
- c# 关于取版本号的另类要求与正常要求的实现
- 【待续,啊啊啊啊】【找了一遍,最后成功!!】stm32 USART 防止发送缓冲区被新来的数据覆盖
- Linux下用C语言检查指定程序名的运行实例个数
- 关于httpservice和webservice
- C++细节7
- 移动开发:dequeueReusableCellWithIdentifier的运行机制
- C#右下角弹窗不影响主程序的另类实现
- 【Android】日期拾取器、时间拾取器与菜单
- keil 编译后 flash 和 ram 占用情况
- Console2:Windows命令行威力加强版
- linux和window下生成任意大小的文件
- ios开发FMDB导入SQLCipher加密数据库
- MVC项目搭建--Java1.7+Eclipse luna + Maven 3.2.5 +spring 4.1.4
- 网易新闻iOS版在开发过程中曾经使用过的第三方开源类库、组件
- This End Up: Using Device Orientation