C#制作不规则窗体的简单方法
2009-02-15 15:37
585 查看
1、绘制不规则的窗体位图设置位图的背景色。
2、设置窗体基本属性
(1)。将 FormBorderStyle 属性设置为 None。
(2)。将窗体的 BackgroundImage 属性设置为先前创建的位图文件。不必将文件添加到项目系统中;这将在指定该文件作为背景图像时自动完成。
(3)。将 TransparencyKey 属性设置为位图文件的背景色,本例中为黄色。(此属性告诉应用程序窗体中的哪些部分需要设置为透明。 )
3、添加相应代码。
(1)关闭
从工具栏中拖进一个按钮,设置其按钮文字为“×”,设置其大小为合适大小。双击该按钮进入其触发时间函数。
写入如下代码:
(2)。设置窗体的移动操作,我们要用到两个全局的变量
创建该窗体 MouseDown事件的相应处理程序。
创建该窗体的 MouseMove事件的相应处理程序
创建该窗体的MouseUp事件的相应处理程序
(3)。加入相应的其他的控件
其他的就是看你自己的需要,来添加控件,实现自己想要实现的功能。
本例中添加了一文本框,设置其背景为黄色,所以显示时也成了透明的。
注意:如果监视器的颜色深度设置大于 24 位,则不管 TransparencyKey 属性是如何设置的,窗体的非透明部分都会产生显示问题。若要避免出现这种问题,请确保“显示”控制面板中的监视器颜色深度的设置小于 24 位。当开发具有这种透明功能的应用程序时,请牢记应使您的用户意识到此问题。
2、设置窗体基本属性
(1)。将 FormBorderStyle 属性设置为 None。
(2)。将窗体的 BackgroundImage 属性设置为先前创建的位图文件。不必将文件添加到项目系统中;这将在指定该文件作为背景图像时自动完成。
(3)。将 TransparencyKey 属性设置为位图文件的背景色,本例中为黄色。(此属性告诉应用程序窗体中的哪些部分需要设置为透明。 )
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 位。当开发具有这种透明功能的应用程序时,请牢记应使您的用户意识到此问题。
相关文章推荐
- 详解使用C#制作不规则窗体的方法
- 详解使用C#制作不规则窗体的方法
- C# 透明窗体制作方法比较(1)
- C# WinForm制作异形窗体与控件的方法
- C# winform中不规则窗体制作的解决方案
- c#制作简单启动画面的方法
- (转)C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- C# 透明窗体制作方法
- C# 透明窗体制作方法比较(2)
- 用C#.net轻松制作不规则窗体
- C#圆角窗体简单实现方法
- C# 制作不规则窗体的几种解决方案
- C# 制作不规则窗体的两种解决方案
- C# winform制作不规则窗体
- C# 透明窗体制作方法比较
- C# 子窗体关闭父窗体的简单方法
- [转]C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- c# 2个窗体之间传递的简单方法
- C#使用图片制作不规则窗体
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)