/// <summary> /// 将窗体置于最顶层而不获取焦点 /// </summary> /// <param name="b">true最顶层,false非顶层</param> /// <param name="fAll">要操作的窗口的集合</param> public static void TopFormNoFocus(Boolean isTop, Form[] formArr) { // 判断传入的窗体集合为null或大小为0 if (formArr == null || 0.Equals(formArr.Length)) { return; } // 遍历 foreach (Form form in formArr) { // 判断窗体不为null或窗体没有被释放 if (form != null && !form.IsDisposed) { // 判断是否要设置为顶层 if (isTop) { // 设为顶层 WindowsApiUtils.setFormTopNoFocus(true, form); } else { // 判断当前前台窗口是否为要设置的窗口 if (form.TopLevel && !WindowsApiUtils.GetForegroundWindow().Equals(form.Handle)) { // 将窗口设置为非顶层 WindowsApiUtils.setFormTopNoFocus(false, form); } } } } }
/// <summary> /// 将窗体置于最顶层而不获取焦点 /// </summary> /// <param name="b">true最顶层,false非顶层</param> /// <param name="f">要操作的窗口</param> public static void TopFormNoFocus(Boolean isTop, Form form) { if (form == null || form.IsDisposed) { return; } if (form != null) { if (isTop) { WindowsApiUtils.setFormTopNoFocus(true, form); } else { if (!WindowsApiUtils.GetForegroundWindow().Equals(form.Handle)) { WindowsApiUtils.setFormTopNoFocus(false, form); } } } }