資源描述:
《顏色主題編輯器實驗報告.doc》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、實驗二.Net平臺上窗體程序設計一、實驗目的:掌握窗體應用程序的編寫與調試方法二、實驗內容:1、編寫C#.net窗體應用程序,并調試。2、開發(fā)一個主題設計器的顏色設置功能部分,詳細情況參考附件Debug.rar中的可執(zhí)行程序演示的功能。3、實驗報告要求附上主題設計器顏色設置功能的源代碼,及運行效果示意圖。三、收獲與體會(要求小組成員簡要填寫在課程實驗中遇到的主要問題以及解決方法,并手工簽上小組所有成員姓名):實驗過程中遇到的問題及解決方法:本次實驗我們創(chuàng)建了ColorComboBox和ColorControl兩個自定義控件,分別用以實現(xiàn)下拉菜單中可以顯示顏色以及控制
2、多路顏色的變化。對于ColorControl控件,使用ChangeColor方法實現(xiàn)統(tǒng)一變更顏色,用一個枚舉變量來定義可以更改的內部控件。在外部調用時,只需將其作為參數(shù)傳入ChangeColor方法即可實現(xiàn)變更顏色。體會:雖然這個程序不難編程但是也讓我們發(fā)現(xiàn)了自己在編程上的許多問題,以及對一些C#的語法還不夠熟悉,但也讓我們知道自己的不足,以及自己今后需要進行加強的方面是什么。更讓我們體會到了團隊合作的精神,以及大家在一起互幫互助,共同解決問題的感覺。相信我們今后也會更加默契,共同學習,共同進步。簽名:附加代碼usingSystem;usingSystem.Coll
3、ections.Generic;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespace主體顏色編輯器{publicclassColorComboBox:ComboBox{privatevoidInitItems(){this.DrawMode=DrawMode.OwnerDrawFixed;//手動繪制所有元素this.DropDownStyle=ComboBoxStyle.DropDow
4、nList;//下拉框樣式設置為不能編輯this.Items.Clear();//清空原有項ArrayallColors=Enum.GetValues(typeof(KnownColor));//獲取系統(tǒng)顏色名存入列表foreach(KnownColorvarinallColors){this.Items.Add(var.ToString());//加載該選項框的子項}}publicColorComboBox():base(){InitItems();}protectedoverridevoidOnDrawItem(DrawItemEventArgse){if(e.
5、Index>=0)//判斷是否需要重繪{stringcolorName=this.Items[e.Index].ToString();//獲取顏色名SolidBrushbrush=newSolidBrush(Color.FromName(colorName));//定義畫刷Fontfont=newFont("宋體",9);//定義字體Rectanglerect=e.Bounds;rect.Inflate(-2,-2);RectanglerectColor=newRectangle(rect.Location,newSize(20,rect.Height));e.Gr
6、aphics.FillRectangle(brush,rectColor);//填充顏色e.Graphics.DrawRectangle(Pens.Black,rectColor);//繪制邊框e.Graphics.DrawString(colorName,font,Brushes.Black,(rect.X+22),rect.Y);//繪制文字}}//////選擇的顏色名稱///publicstringSelectedColorName{get{returnthis.Text;}}//////選擇的顏色///
7、publicColorSelectedColor{get{returnColor.FromName(this.Text);}}}publicpartialclassColorControl:UserControl{publicColorControl(){InitializeComponent();this.labelArea1.BackColor=this.BackColor;this.labelArea2.BackColor=this.BackColor;this.labelArea3.BackColor=this.BackColor;t