本节内容介绍如何使用TrackBar控件改变窗体透明度,绘制线宽带以及母球的大小,关于窗体界面的设计请参考 步骤2:创建项目添加主窗体。
透明度
使用TrackBar控件frmOpacityTrackBar来控制窗体的透明度。
为frmOpacityTrackBar添加Scroll事件。Scroll事件是当TrackBar被滑动的时候触发。首先选中frmOpactiyTrackBar控件,然后切换到“属性”窗口,在事件列表里找到Scroll事件,接着双击Scroll事件。开发工具会为我们生成事件的代码。
Form窗体的不透明度是使用Opacity属性值来表示的。Opacity 属性使您可以指定窗体及其控件的透明度级别。将此属性设置为小于 100% (1.00) 的值时,会使整个窗体(包括边框)更透明。将此属性设置为值 0% (0.00) 时,会使窗体完全不可见。可以使用此属性提供不同级别的透明度,或者提供如窗体逐渐进入或退出视野这样的效果。例如,可以通过将 Opacity 属性设置为值 0% (0.00),并逐渐增加该值直到它达到 100% (1.00),使一个窗体逐渐进入视野。
frmOpacityTrackBar在步骤2:创建项目添加主窗体中定义了Maximum的值是100(不透明),Minimum的值是5(最小透明度)。所以我们只需要在frmOpacityTrackBar的Scroll事件中根据根据frmOpacityTrackBar的属性Value(当前滑动的值)来修改Form窗体的Opacity 属性即可。
示例代码:
//窗口透明度
private void frmOpacityTrackBar_Scroll(object sender, EventArgs e)
{
this.Opacity = frmOpacityTrackBar.Value / 100.0;
}
线宽
使用TrackBar控件penWeigthTrackBar来改变绘制图像的线宽。同设置窗体透明度一样,我penWeightTrackBar控件添加Scroll。penWeigthTrackBar在步骤2:创建项目添加主窗体中定义了Maximum的值是20。Minimum的值是1。
示例代码:
//线宽
private void penWeigthTrackBar_Scroll(object sender, EventArgs e)
{
this.penWidth = penWeigthTrackBar.Value/10;
}
母球大小
改变母球大小的方法与上面相同,这里我们添加一个成员变量base_radius来表示母球的初始大小。
public partial class Form1 : Form
{
private const float radius_base = 9.5f;
….
}
添加ballSizeTrackBar的Scroll事件代码
private void ballSizeTrackBar_Scroll(object sender, EventArgs e)
{
this.radius = radius_base + ballSizeTrackBar.Value / 10;
}
颜色
绘制图形的颜色,为colorBtn添加单击事件。改变画笔颜色的同时也修改colorBtn的背景颜色,以方便的知道我们当前选择的颜色。
示例代码
//颜色
private void colorBtn_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
colorBtn.BackColor = penColor = colorDialog1.Color;
}
}
测试运行我们的程序如下图所示:
你可以试着改变窗体的透明度,线宽,母球大小来观察运行的结果。
清除图像
正如步骤1:桌球瞄准器介绍与使用方法中描述的,我们在Form窗体右键单击的时候才清除已经绘制的图像。修改Form窗体的鼠标单击事件:
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
//清除图像
this.Refresh();
}
else if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
//记住线条起点
startPoint = new Point(e.X, e.Y);
}
}
代码下载
taiqiu_step4.zip
本节内容结束。
下一节讲述如何使用注册表保存设置好的值,这样的好处是在程序下次启动的时候还会保留上一次配置的结果,在使用上会给我们带来方便。
参考资料
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.form.opacity(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.trackbar(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.trackbar(VS.80).aspx
相关章节
更多内容请访问 http://dev.mjxy.cn/a-Tutorial-5-QQ-Snooker-sight.aspx