WinForm特效:同时让两个窗体有激活效果

windows api,一个窗体激活的时候给另外一个发消息

[csharp] view plaincopy

  1. using System;
  2. using System.Windows.Forms;
  3. using System.Runtime.InteropServices;
  4. namespace WindowsApplication43
  5. {
  6. public partial class Form1 : Form
  7. {
  8. Form frm =null;
  9. public Form1()
  10. {
  11. InitializeComponent();
  12. this.Activated += Form_Activated;
  13. }
  14. const int WM_NCACTIVATE = 0x86;
  15. const int WA_ACTIVE = 0x1;
  16. [DllImport("user32.dll", EntryPoint = "SendMessage")]
  17. public static extern int SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam);
  18. private void button1_Click(object sender, EventArgs e)
  19. {
  20. frm = new Form();
  21. frm.Text = "jinjazz";
  22. frm.Activated += Form_Activated;
  23. frm.Show();
  24. frm.Location = new System.Drawing.Point(this.Left + this.Width, this.Top);
  25. SendMessage(this.Handle, WM_NCACTIVATE, WA_ACTIVE, 0);
  26. }
  27. void Form_Activated(object sender, EventArgs e)
  28. {
  29. SendMessage(this.Handle, WM_NCACTIVATE, WA_ACTIVE, 0);
  30. if (frm != null)
  31. SendMessage(frm.Handle, WM_NCACTIVATE, WA_ACTIVE, 0);
  32. }
  33. }
  34. }
时间: 2024-08-06 16:05:10

WinForm特效:同时让两个窗体有激活效果的相关文章

WinForm实现同时让两个窗体有激活效果的特效实例

本文实例讲述了WinForm实现同时让两个窗体有激活效果的特效.主要采用windows api实现一个窗体激活的时候给另外一个发消息.分享给大家供大家参考. 具体实现方法如下: using System; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication43 { public partial class Form1 : Form { Form frm =nu

Visual Studio 中两个窗体(WinForm)之间相互传值的方法

编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单.以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain 1. FormMain和FormInfo 点击"修改..."按钮,显示FormInfo 2. 设置FormInfo中buttonOK和buttonCancal的属性 3. FormMain代码 public partial class FormMain : Form

Winform之学生信息管理系统登陆窗体

好吧,对这块的知识学习早已期待已久,感觉学习的进度还是慢了,最近一直在学习Winform,不得不说一些登陆窗体的设计,这几天算是小有收获,自己也看了许多这方面的知识,知道了要想做学生信息管理系统是一个漫长的过程,但是从今天起就来慢慢地进行学生信息管理系统的构建,此外还用到数据库的知识,打算着自己开始学数据库的知识,今天就来看看学生信息管理系统登录窗口的设计.下面图片的是样例: 这方面的知识还是基于C#语言和.NET Framework平台的.自己所用的还是熟悉的开发环境VS2012,感觉VS20

C# 两个窗体中相互切换的方法

注意将form2中的botton2的modyfier属性修改为public form1代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace test {    

WinForm 窗体缩放动画效果

using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Windows.Forms; using System.Drawing; using System.Diagnostics; namespace AnimatedTransform { static class FormTransform { public static void Trans

使窗体拥有透明效果的API

一.背景FlashGet的透明效果大家羡慕吧.传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,很麻烦.现在好了,SetLayeredWindowAttributes是windows的新api,win2000以上才支持,它能使使窗体拥有透明效果.我在Google搜了下,介绍SetLayeredWindowAttributes的文章大多是delphi的和vb的.好不容易找到一篇vc的,依法炮制后,vc的IDE却说我SetLayeredWindowA

增加窗体边框3D效果

/// <summary> /// 增加窗体边框3D效果 /// </summary> /// <param name="e"></param> protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); using (Pen bluePen = new Pen(Color.FromArgb(141, 178, 196))) { e.Graphics.DrawL

如何实现两个div等高效果

如何实现两个div等高效果:在网页实际应用中,可能需要动态的实现两个div的等高效果,当然不仅限于div,例如一个网页分为左右两栏,一栏的高度可能需要根据内容自适应,也就是说高度不是固定的,而另一栏需要和它保持高度一致,那么就需要动态的设置高度.代码实例如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charse

WinForm特效:拦截窗体上各个部位的点击

windows窗体的标题栏无法直接通过一些默认的事件来控制,需要了解和WM_NCHITTEST相关的windows消息. 以下示例演示了最简单的效果片断: 他会把客户区和标题栏的效果互换,比如无法按住标题栏拖动窗体而是改为了安抓客户区拖动,并禁用了关闭按钮. 其中m.Result从-2到21都有定义,分别度应了整个窗体的各个部位,比如1代表客户区,8代表最小化按钮等等. [csharp] view plaincopy using System; using System.Windows.Form