设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> 网络编程 >> C# >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
变脸:用CSS+JS打造的网…
用CSS实现动态显示的五角…
用css实现文字的自动隐藏
PHP中使用crypt()实现用…
使用C#开发SmartPhone程…
用C#实现智能设备上的No…
用CSS样式表控制鼠标显示…
制作网页学习之常用CSS实…
VS2005中使用C#的新特性…
C#获取WAVE文件文件头信…
  用C#.net制作不规则窗体         ★★★★★
用C#.net制作不规则窗体
 

【导读】本文讲解了使用C#.net创建不规则窗体的制作过程

现在我们可以使用C#.net轻松的创建不规则窗体,下面我就用一个简单的例子来讲述其制作过程。

1.绘制不规则窗体位图

2.设置窗体基本属性

3.编写窗体相关代码  (要实现窗口的关闭,移动等操作)   



1.绘制不规则窗体位图

可以使用任意一种你喜欢的作图工具,制作一个有形状的位图,背景使用一种其他的颜色。这个颜色在编程中用得着,所以最好使用一种容易记忆的颜色。

如图下图,本例中使用的背景色为黄色(#ffff00/yellow),文件名为bk.bmp



2.创建windows窗体并设置窗体基本属性

1>新建windows应用程序



2>选中新建的窗体,设置其相应属性:

(1)将 FormBorderStyle 属性设置为 None。

(2)将窗体的 BackgroundImage 属性设置为先前创建的位图文件。不必将文件添加到项目系统中;这将在指定该文件作为背景图像时自动完成。

(3)将 TransparencyKey 属性设置为位图文件的背景色,本例中为黄色。(此属性告诉应用程序窗体中的哪些部分需要设置为透明。 )

这时你就可以按F5测试你的程序,可以看到如图所示的窗体。现在窗体还不能拖动,只能通过结束程序,或者alt+F4关闭。下面我们编写相应的代码来实现标题栏的相应功能。

      

3.编写窗体相关代码(要实现窗口的关闭,移动等操作)



(1)实现窗口关闭

从工具栏中拖进一个按钮,设置其按钮文字为“×”,设置其大小为合适大小。双击该按钮进入其触发时间函数。

写入如下代码:



this.Close();        //关闭本窗体

(2)设置窗体的移动操作,我们要用到两个全局的变量

private Point mouseOffset;        //记录鼠标指针的坐标

             private bool isMouseDown = false; //记录鼠标按键是否按下

创建该窗体 MouseDown事件的相应处理程序。

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)

{

int xOffset;

int yOffset;

if (e.Button == MouseButtons.Left)

{

xOffset = -e.X - SystemInformation.FrameBorderSize.Width;

yOffset = -e.Y - SystemInformation.CaptionHeight -

SystemInformation.FrameBorderSize.Height;

mouseOffset = new Point(xOffset, yOffset);

isMouseDown = true;

}

}

创建该窗体的 MouseMove事件的相应处理程序

private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)

{

if (isMouseDown)

{

Point mousePos = Control.MousePosition;

mousePos.Offset(mouseOffset.X, mouseOffset.Y);

Location = mousePos;

}

}



创建该窗体的MouseUp事件的相应处理程序

private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)

{

// 修改鼠标状态isMouseDown的值

// 确保只有鼠标左键按下并移动时,才移动窗体

if (e.Button == MouseButtons.Left)

{

isMouseDown = false;

}

}

(3)加入相应的其他的控件

其他的就是看你自己的需要,来添加控件,实现自己想要实现的功能。本例中添加了一文本框,设置其背景为黄色,所以显示时也成了透明的。



现在,我们就可以生成程序,看一下最后的效果了。

注意:如果监视器的颜色深度设置大于 24 位,则不管 TransparencyKey 属性是如何设置的,窗体的非透明部分都会产生显示问题。若要避免出现这种问题,请确保“显示”控制面板中的监视器颜色深度的设置小于 24 位。当开发具有这种透明功能的应用程序时,请牢记应使您的用户意识到此问题。

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2006-10-10
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:admin    责任编辑:admin 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持