颜色主题编辑器实验报告.doc
文本预览下载声明
实验二 .Net平台上窗体程序设计
一、实验目的:
掌握窗体应用程序的编写与调试方法 二、实验内容:
1、编写C#.net窗体应用程序,并调试。
2、开发一个主题设计器的颜色设置功能部分,详细情况参考附件Debug.rar中的可执行程序演示的功能。
3、实验报告要求附上主题设计器颜色设置功能的源代码,及运行效果示意图。
收获与体会(要求小组成员简要填写在课程实验中遇到的主要问题以及解决方法,并手工签上小组所有成员姓名):
实验过程中遇到的问题及解决方法:
本次实验我们创建了ColorComboBox和ColorControl两个自定义控件,分别用以实现下拉菜单中可以显示颜色以及控制多路颜色的变化。对于ColorControl控件,使用ChangeColor方法实现统一变更颜色,用一个枚举变量来定义可以更改的内部控件。在外部调用时,只需将其作为参数传入ChangeColor方法即可实现变更颜色。
体会:
虽然这个程序不难编程但是也让我们发现了自己在编程上的许多问题,以及对一些C#的语法还不够熟悉,但也让我们知道自己的不足,以及自己今后需要进行加强的方面是什么。更让我们体会到了团队合作的精神,以及大家在一起互帮互助,共同解决问题的感觉。相信我们今后也会更加默契,共同学习,共同进步。
签名:
附加代码
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 主体颜色编辑器
{
public class ColorComboBox : ComboBox
{
private void InitItems()
{
this.DrawMode = DrawMode.OwnerDrawFixed;//手动绘制所有元素
this.DropDownStyle = ComboBoxStyle.DropDownList;//下拉框样式设置为不能编辑
this.Items.Clear();//清空原有项
Array allColors = Enum.GetValues(typeof(KnownColor));//获取系统颜色名存入列表
foreach (KnownColor var in allColors)
{
this.Items.Add(var.ToString()); //加载该选项框的子项
}
}
public ColorComboBox()
: base()
{
InitItems();
}
protected override void OnDrawItem(DrawItemEventArgs e)
{
if (e.Index = 0)//判断是否需要重绘
{
string colorName = this.Items[e.Index].ToString();//获取颜色名
SolidBrush brush = new SolidBrush(Color.FromName(colorName));//定义画刷
Font font = new Font(宋体, 9);//定义字体
Rectangle rect = e.Bounds;
rect.Inflate(-2, -2);
Rectangle rectColor = new Rectangle(rect.Location, new Size(20, rect.Height));
e.Graphics.FillRectangle(brush, rectColor);//填充颜色
e.Graphics.DrawRectangle(Pens.Black, rectCo
显示全部