C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法

你QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法:

要么重写需要弹出的窗体的事件:

protected override CreateParams CreateParams    
{
    get
    {
        const int WS_EX_NOACTIVATE = 0x08000000;
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= WS_EX_NOACTIVATE;
        return cp;
    }
}
// CreateParams 在 System.Windows.Forms.Controls 命名空间下

要么调用系统钩子:

// 引用系统钩子
[DllImport("user32.dll")]
public static extern IntPtr GetActiveWindow();
 
[DllImport("user32.dll")] 
public static extern IntPtr SetActiveWindow(IntPtr hwnd);
  
// 在窗口弹出时做以下处理
IntPtr activeForm = GetActiveWindow(); // 先得到当前的活动窗体 
new form2.Show(false); // 弹出新窗体
SetActiveWindow(activeForm); // 在把焦点还给之前的活动窗体
时间: 2024-12-25 04:22:43

C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法的相关文章

利用颜色和形态学两种方法进行车牌区域提取的OpenCV代码

要想提取车牌号,首先你要定位车牌区域嘛,本文分别两种方法用,即颜色和形态学的方法,对车牌区域进行判定.说得是两种方法,其实两种方法并无多大的区别,只是有一步的判断标准不一样而已,你看了下面整理出的的思路就知道两者的区别真的很小了. 方法一:利用颜色提取车牌区域的思路: ①求得原图像的sobel边缘sobelMat ②在HSV空间内利用车牌颜色阈值对图像进行二值化处理,得到图像bw_blue→ ③由下面的判别标准得到图像bw_blue_edge for (int k = 1; k != heigh

程序打印自身代码的两种方法

程序打印自身代码的两种方法 方法一:利用fopen,打开可执行程序对应的source code file /***************************************** code writer : EOF code file : print_my_self.c code date : 2014.08.01 e-mail: [email protected] code purpose : Aha, print out myself! *********************

Android 更新UI的两种方法——handler和runOnUiThread() - $firecat的代码足迹$ - 博客频道 - CSDN.NET

文章来源:http://www.2cto.com/kf/201302/190591.html Android 更新UI的两种方法——handler和runOnUiThread() 在Android开发过程中,常需要更新界面的UI.而更新UI是要主线程来更新的,即UI线程更新.如果在主线线程之外的线程中直接更新页面显示常会报错.抛出异常:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread th

选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别

一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 var data={ "show_in_list": 1, "enums": [ { "value": "B2B", "key": "1" }, { "value": &

【代码笔记】判断中英文混合的字符长度的两种方法

一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //第一种方法 NSLog(@"--first-%i",[self convertToInt:@"123我爱你"]); //第二种方法 NSLog(@"--second--%ld",[self getToInt:@"123我爱你"

实现文本框高度自适应的两种方法

需求:做一个文本框需要让文本框有一个默认的最小高度,当书写的文字到文本框的最底端的时候可以让文本框自动撑开. 第一种方法通过js来实现的: html部分:<textarea name=""  class="disvertop describe-texa" autoHeight="true"></textarea> cssl部分: .describe-texa{padding:10px; outline: none; res

微信小程序弹出可填写框两种方法

方法一: html页面: < view class = "container" class = "zn-uploadimg" > < button type = "primary" bindtap = "modalinput" > modal有输入框 < /button> </view > < modal id = "modal" hidden = &q

一个php生成16位随机数的代码(两种方法)

一个php生成16位随机数的代码,php生成随机数的二种方法. 方法1<?php$a = mt_rand(10000000,99999999);$b = mt_rand(10000000,99999999);echo $a.$b; 方法2:<?php$a = range(0,9);for($i=0;$i<16;$i++){$b[] = array_rand($a);} // www.yuju100.comvar_dump(join("",$b));//结果string

通过代码设置radiobutton不同方位图标的两种方法

更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的.没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds. 下面交给大家方法. 第一个方法:setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom) ap