窗体打开特效
发表时间:2023-08-03 来源:明辉站整理相关软件相关文章人气:
[摘要]【效果图】 【思路】: 在Form的OnLoad中 先使Form不可见,然后从内向外,一层一层绘制Rectangle ,最后让Form可见【难点】 首先输出效果的Rectangle要有个地方显...
【效果图】
【思路】:
在Form的OnLoad中 先使Form不可见,然后从内向外,一层一层绘制Rectangle ,最后让Form可见
【难点】
首先输出效果的Rectangle要有个地方显示,Main Form可不行,因为当绘制Rectangle的时候 ,Form是不可见的,这里使用了Desktop桌面
【代码如下】
1. 加入命名空间
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
2. 声明Win32 Api GetDC()
[ DllImport("user32") ]
public static extern System.IntPtr GetDC(System.IntPtr dc);
3. 声明变量
System.Drawing.Graphics g; //画图板
Pen p=new Pen(Color.Black,1); //画笔
int startx,starty,wx,wy,step; //startx,starty,wx,wy确定一个矩形
int cx,cy; //cx,cy为form的client的width 和height
4.在Form的OnLoad上加上如下代码
this.Visible=false;
step=1;
g=Graphics.FromHdc(GetDC(System.IntPtr.Zero));
cx=this.ClientSize.Width;
cy=this.ClientSize.Height;
this.Visible=false;
step=1;
while(step<=cx/2)
{
startx=cx/2-step;
starty=cy*startx/cx;
wx=2*step;
wy=wx*cy/cx;
startx+=this.Left;
starty+=this.Top+this.Height-this.ClientSize.Height;
g.DrawRectangle(p,startx,starty,wx,wy);
System.Threading.Thread.Sleep(100);
step+=10;
}
this.Visible=true;
ps:这是第一次发表原创, 大