創(chuàng)建特定形狀的窗體課件_第1頁
創(chuàng)建特定形狀的窗體課件_第2頁
創(chuàng)建特定形狀的窗體課件_第3頁
創(chuàng)建特定形狀的窗體課件_第4頁
創(chuàng)建特定形狀的窗體課件_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

創(chuàng)建特定形狀的窗體DEMO1

1創(chuàng)建特定形狀的窗體DEMO1

1添加窗體的Paint事件處理//GraphicsPath表示一系列相互連接的直線和曲線

System.Drawing.Drawing2D.GraphicsPathshape=newSystem.Drawing.Drawing2D.GraphicsPath();shape.AddEllipse(0,0,this.Width,this.Height);//Control.Region屬性獲取或設置與控件關(guān)聯(lián)的窗口區(qū)域。this.Region=newSystem.Drawing.Region(shape);2添加窗體的Paint事件處理//GraphicsPath表示創(chuàng)建不規(guī)則窗體DEMO2

3創(chuàng)建不規(guī)則窗體DEMO2

3步驟1(1)創(chuàng)建Windows應用程序項目,將其屬性設置為移除標題欄并使用位圖作為窗體背景。BackgroundImage屬性:位圖FormBorderStyle屬性:NoneTransparencyKey屬性:設為要隱藏的顏色4步驟1(1)創(chuàng)建Windows應用程序項目,將其屬性設4步驟2(2)輸入重新創(chuàng)建標題欄所提供功能的代碼,例如移動和關(guān)閉窗體。為窗體添加數(shù)據(jù)成員,記錄鼠標狀態(tài):privatePointmouseOffset;privateboolisMouseDown=false;5步驟2(2)輸入重新創(chuàng)建標題欄所提供功能的代碼,5步驟3(3)添加窗體的MouseDown事件處理:privatevoidForm1_MouseDown(objectsender,MouseEventArgse){intxOffset;intyOffset;if(e.Button==MouseButtons.Left){//計算和窗體左上角的偏離量xOffset=-e.X-SystemInformation.FrameBorderSize.Width;yOffset=-e.Y-SystemInformation.CaptionHeight-SystemInformation.FrameBorderSize.Height;mouseOffset=newPoint(xOffset,yOffset);isMouseDown=true;}}6步驟3(3)添加窗體的MouseDown事件處理:6添加窗體的MouseMove事件處理privatevoidForm1_MouseMove(objectsender,MouseEventArgse){if(isMouseDown){//獲取鼠標光標的位置(以屏幕坐標表示)。

PointmousePos=Control.MousePosition; //將此Point平移指定的量。

mousePos.Offset(mouseOffset.X,mouseOffset.Y);Location=mousePos;}}7添加窗體的MouseMove事件處理privatevoid添加窗體的MouseUp事件處理privatevoidForm1_MouseUp(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Left){isMouseDown=false;}}8添加窗體的MouseUp事件處理privatevoidFMaskedTextBox控件DEMO3

9MaskedTextBox控件DEMO3

9

MaskedTextBox控件(P51)

MaskedTextBox控件,也叫掩碼文本框。它的主要作用是控制輸入文本的格式。如果輸入的內(nèi)容不滿足規(guī)定的格式,則控件不會接收該輸入。如下圖是從工具箱向窗體拖動該控件的圖示。

10MaskedTextBox控件(P51)Mask1、常用的基本屬性(1)[InsertKeyMode]屬性:指示向掩碼文本框輸入字符時的輸入模式,其屬性值有:Default、Insert和Overwrite3種。當屬性值為Default時,表示輸入模式由當時鍵盤的插入/改寫狀態(tài)決定,如果輸入時鍵盤處于改寫模式,則會改寫輸入處的字符,否則為插入字符。當屬性值為Insert時,即使鍵盤的Ins鍵被按下,也不會以改寫方式輸入字符。當屬性值為Overwrite時,則任何時候都是以改寫方式輸入字符。111、常用的基本屬性11(2)[PromptChar]屬性:指定作為占位符的字符,用于指示用戶需要輸入的字符長度,默認的占位符為下劃線“_”,需要修改時可以直接在屬性后的空白處輸入指定字符。12(2)[PromptChar]屬性:指定作為占位符的字符,用(3)[Mask]屬性:設置當前掩碼文本框輸入字符的格式。單擊[Mask]屬性后的[…]按鈕,13(3)[Mask]屬性:設置當前掩碼文本框輸入字符的格式。單彈出如圖所示的窗口,其中是一些設置好的時間、電話號碼的格式,若這些格式都不能滿足設計要求,也可以選擇自定義格式,或者在[Mask]屬性后的空白處直接輸入自定義格式。14彈出如圖所示的窗口,其中是一些設置好的時間、電話號碼的格式,1515

自定義輸入格式時,可以使用掩碼和分隔符兩類符號。掩碼用于限制用戶可輸入的符號類型,程序運行時掩碼以占位符顯示;而分隔符可作為輸入字符之間的關(guān)聯(lián)符,分隔符顯示在掩碼文本框中,且不可修改。表5-3列出了常用掩碼和分隔符的含義。

16自定義輸入格式時,可以使用掩碼和分隔符兩類符號。掩碼表5-3常用的掩碼和分隔符符號含義掩碼0數(shù)字“0”~“9”9數(shù)字“0”~“9”、空格(Space)#數(shù)字“0”~“9”、空格(Space)、“+”、“-”L數(shù)字“a”~“z”、“A”~“Z”&鍵盤可輸入字符A、a字母與數(shù)字<強制將其后輸入的字母轉(zhuǎn)換為小寫>強制將其后輸入的字母轉(zhuǎn)換為大寫分隔符.小數(shù)分隔符,即小數(shù)點-連接分隔符,數(shù)字分隔符:時間分隔符/日期分隔符$貨幣符號17表5-3常用的掩碼和分掩碼不能保證用戶輸入一定會表示給定類型的有效值,例如,輸入的年齡值可能為-9。通過將值的類型的實例賦給ValidatingType屬性,可以確保用戶輸入表示一個有效值。通過監(jiān)視TypeValidationCompleted事件,可以檢測當MaskedTextBox包含無效值時,用戶是否將焦點從該控件移開。如果鍵入驗證成功,可以通過TypeValidationEventArgs參數(shù)的ReturnValue屬性使用表示該值的對象。18掩碼不能保證用戶輸入一定會表示給定類型的有效值,例如,輸入的(4)[TextMaskFormat]屬性:表示由掩碼文本框的[Text]屬性得到的字符串中是否包含占位符、分隔符的內(nèi)容。該屬性共有4個選項:ExcludePromptAndLiterals表示占位符和分隔符均不包含;IncludePrompt表示僅包含占位符;IncludeLiterals表示僅包含分隔符;IncludePromptAndLiterals表示占位符和分隔符均包含。19(4)[TextMaskFormat]屬性:表示由掩碼文本框(5)HidePromptOnLeave屬性:指示若當前控件未處于活動狀態(tài)時,是否顯示占位苻,若屬性值為true時,表示當控件不是活動狀態(tài),隱藏占位苻;若屬性值為false時,即使控件不是活動狀態(tài),仍然顯示占位符。20(5)HidePromptOnLeave屬性:指示若當前控件2、常用的基本事件MaskInputRejected事件:當輸入字符不符合掩碼要求時觸發(fā)的操作。[例1]簡單的用戶信息登錄界面示例。(1)新建一個名為MaskedTextBoxExample的Windows應用程序項目,在[解決方案資源管理器]中Form1.cs重命名為FormMaskedTextBox.cs。如下各圖所示。212、常用的基本事件[例1]簡單的用戶信息登錄界面示例。2向Form窗體中添加5個MaskedTextBox控件、1個Button控件和7個Label控件,窗體中各控件的屬性、布局及顯示效果如圖所示。22向Form窗體中添加5個MaskedTextBox控件、1個在FormMaskedTextBox類中直接編寫MyMaskInputRejected事件和MyMaskInputReset事件。具體代碼為://若輸入不符合要求,則以紅色字體顯示輸入信息

privatevoidMyMaskInputRejected(objectsender,MaskInputRejectedEventArgse){((MaskedTextBox)sender).ForeColor=Color.Red;}//重新輸入時,以改寫方式輸入,并恢復正常的字體顏色privatevoidMyMaskInputReset(objectsender,KeyEventArgse){((MaskedTextBox)sender).InsertKeyMode=InsertKeyMode.Overwrite;((MaskedTextBox)sender).ForeColor=Color.FromName("WindowText");}23在FormMaskedTextBox類中直接編寫MyMask為所有的MaskedTextBox的MaskInputRejected事件指定事件處理函數(shù):MyMaskInputRejected為所有的MaskedTextBox的KeyDown事件指定事件處理函數(shù):MyMaskInputReset24為所有的MaskedTextBox的MaskInpu添加maskedTextBoxBirthday的TypeValidationCompleted事件代碼。將該事件代碼補充完整如下:privatevoidmaskedTextBoxBirthday_TypeValidationCompleted(objectsender,TypeValidationEventArgse){if(!e.IsValidInput){MessageBox.Show("您輸入的日期不正確!");((MaskedTextBox)sender).Focus();((MaskedTextBox)sender).InsertKeyMode=InsertKeyMode.Overwrite;}}25添加maskedTextBoxBirthday的TypeVaRadioButton實例DEMO4

26RadioButton實例DEMO4

26添加RadioButton的CheckedChanged

事件處理privatevoidrdo_CheckedChanged(objectsender,EventArgse){RadioButtonbtn=(RadioButton)sender;if(checkBox1.Checked){switch(btn.Text){case"紅色":pictureBox1.BackColor=Color.Red;break;case"藍色":pictureBox1.BackColor=Color.Blue;break;case"黑色":...}}}27添加RadioButton的CheckedChanged

事添加CheckBox的CheckedChanged

事件處理privatevoidcheckBox1_CheckedChanged(objectsender,EventArgse){if(checkBox1.Checked){foreach(Controlctlinthis.groupBox1.Controls){if(ctlisRadioButton){RadioButtonrdo=(RadioButton)ctl;if(rdo.Checked){this.rdo_CheckedChanged(rdo,null);break;}}}}else{pictureBox1.BackColor=this.BackColor;}}}28添加CheckBox的CheckedChanged

事件處理VScrollBar實例DEMO4

29VScrollBar實例DEMO4

29提示(1)設置VScrollBar的LargeChange值為1;30提示(1)設置VScrollBar的LargeChange值添加VSCrollBar的ValueChanged

事件處理privatevoidvScrollBar1_ValueChanged(objectsender,EventArgse){intr,g,b;r=vScrRed.Value;g=vScrGreen.Value;b=vScrBlue.Value;Colorc=Color.FromArgb(r,g,b);pictureBox1.BackColor=c;lblRed.Text=r.ToString();lblGreen.Text=g.ToString();lblBlue.Text=b.ToString();Invalidate(false);}31添加VSCrollBar的ValueChanged

事件處理添加CheckBox的CheckedChanged

事件處理privatevoidcheckBox1_CheckedChanged(objectsender,EventArgse){if(checkBox1.Checked){foreach(Controlctlinthis.groupBox1.Controls){if(ctlisRadioButton){RadioButtonrdo=(RadioButton)ctl;if(rdo.Checked){this.rdo_CheckedChanged(rdo,null);break;}}}}else{pictureBox1.BackColor=this.BackColor;}}}32添加CheckBox的CheckedChanged

事件處理資源管理器實例DEMO5

33資源管理器實例DEMO5

33提示(1)設置ListView的View值為Details;(2)添加命名空間:usingSystem.IO;//添加引用,以使用文件和目錄類34提示(1)設置ListView的View值為Details;初始化左面的TreeView顯示publicvoidRefreshTree(){ //Turnoffvisualupdatingandcleartree. DirectoryTreeView.BeginUpdate(); DirectoryTreeView.Nodes.Clear(); //Makediskdrivestherootnodes. string[]astrDrives=Directory.GetLogicalDrives(); foreach(stringstrinastrDrives) {TreeNodetnDrive=newTreeNode(str,0,0); //ImageIndex=0;SelectedImageIndex=0 DirectoryTreeView.Nodes.Add(tnDrive);

AddDirectories(tnDrive); if(str=="C:\\") DirectoryTreeView.SelectedNode=tnDrive; } DirectoryTreeView.EndUpdate();}35初始化左面的TreeView顯示publicvoidRe添加各個驅(qū)動器節(jié)點voidAddDirectories(TreeNodetn){tn.Nodes.Clear();stringstrPath=tn.FullPath;DirectoryInfodirinfo=newDirectoryInfo(strPath);DirectoryInfo[]adirinfo;try{adirinfo=dirinfo.GetDirectories();}catch{return;}foreach(DirectoryInfodiinadirinfo){TreeNodetnDir=newTreeNode(di.Name,1,2);tn.Nodes.Add(tnDir);}}36添加各個驅(qū)動器節(jié)點voidAddDirectories(T添加TreeView的BeforeExpand響應事件,即在節(jié)點打開前執(zhí)行privatevoidDirectoryTreeView_BeforeExpand(objectsender,System.Windows.Forms.TreeViewCancelEventArgse){ DirectoryTreeView.BeginUpdate(); foreach(TreeNodetnine.Node.Nodes) AddDirectories(tn); DirectoryTreeView.EndUpdate();}37添加TreeView的BeforeExpand響應事件,即在填充ListView,顯示文件信息publicvoidShowFiles(stringstrDirectory){ //Savedirectorynameasfield. this.strDirectory=strDirectory; FileListView.Items.Clear(); DirectoryInfodirinfo=newDirectoryInfo(strDirectory); FileInfo[]afileinfo; try { afileinfo=dirinfo.GetFiles(); } catch { return; }38填充ListView,顯示文件信息publicvoidS foreach(FileInfofiinafileinfo) { //CreateListViewItem. ListViewItemlvi=newListViewItem(fi.Name); //AssignImageIndexbasedonfilenameextension. if(Path.GetExtension(fi.Name).ToUpper()==".EXE") lvi.ImageIndex=4; else lvi.ImageIndex=3; //Addfilelengthandmodifiedtimesub-items. lvi.SubItems.Add(fi.Length.ToString("N0")); //Addattributesubitem. stringstrAttr=""; if((fi.Attributes&FileAttributes.Archive)!=0) strAttr+="A"; if((fi.Attributes&FileAttributes.Hidden)!=0) strAttr+="H";

3939

if((fi.Attributes&FileAttributes.ReadOnly)!=0) strAttr+="R"; if((fi.Attributes&FileAttributes.System)!=0) strAttr+="S"; lvi.SubItems.Add(strAttr); lvi.SubItems.Add(fi.LastWriteTime.ToString()); //AddcompletedListViewItemtoFileListView. FileListView.Items.Add(lvi); } }40 if((fi.Attributes&FileAttr添加TreeView的BeforeExpand響應事件,即在節(jié)點打開前執(zhí)行privatevoidDirectoryTreeView_BeforeExpand(objectsender,System.Windows.Forms.TreeViewCancelEventArgse){ DirectoryTreeView.BeginUpdate(); foreach(TreeNodetnine.Node.Nodes) AddDirectories(tn); DirectoryTreeView.EndUpdate();}41添加TreeView的BeforeExpand響應事件,即在添加DirectoryTreeView的AfterSelect響應事件,即在節(jié)點被選擇后執(zhí)行privatevoidDirectoryTreeView_AfterSelect(objectsender,System.Windows.Forms.TreeViewEventArgse){ ShowFiles(e.Node.FullPath);}42添加DirectoryTreeView的AfterSelec后臺線程實例DEMO6

43后臺線程實例DEMO6

43提示(1)添加控件BackgroundWorker;(2)添加Boolflag=false;表示是否畫圖;(3)添加Randomrandom=newRandom();用來生成隨機畫圖時的坐標和顏色;44提示(1)添加控件BackgroundWorker;44添加BackgroundWorker的DoWork響應事件

privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse){Point[]pt=newPoint[2];Graphicsgraphics=pictureBox1.CreateGraphics();Colorc;while(flag){pt[0]=newPoint(random.Next(pictureBox1.Width),random.Next(pictureBox1.Height));pt[1]=newPoint(random.Next(pictureBox1.Width),random.Next(pictureBox1.Height));c=Color.FromArgb(random.Next(255),random.Next(255),random.Next(255));graphics.DrawLine(newPen(c,3),pt[0],pt[1]);}}45添加BackgroundWorker的DoWork響應事件添加Button的Click響應事件

privatevoidbutton1_Click(objectsender,EventArgse){this.flag=!this.flag;if(this.flag){button1.Text="停止";this.backgroundWorker1.RunWorkerAsync();while(this.backgroundWorker1.IsBusy){Application.DoEvents();}}else{button1.Text="開始";}}46添加Button的Click響應事件privatevoi創(chuàng)建特定形狀的窗體DEMO1

47創(chuàng)建特定形狀的窗體DEMO1

1添加窗體的Paint事件處理//GraphicsPath表示一系列相互連接的直線和曲線

System.Drawing.Drawing2D.GraphicsPathshape=newSystem.Drawing.Drawing2D.GraphicsPath();shape.AddEllipse(0,0,this.Width,this.Height);//Control.Region屬性獲取或設置與控件關(guān)聯(lián)的窗口區(qū)域。this.Region=newSystem.Drawing.Region(shape);48添加窗體的Paint事件處理//GraphicsPath表示創(chuàng)建不規(guī)則窗體DEMO2

49創(chuàng)建不規(guī)則窗體DEMO2

3步驟1(1)創(chuàng)建Windows應用程序項目,將其屬性設置為移除標題欄并使用位圖作為窗體背景。BackgroundImage屬性:位圖FormBorderStyle屬性:NoneTransparencyKey屬性:設為要隱藏的顏色50步驟1(1)創(chuàng)建Windows應用程序項目,將其屬性設4步驟2(2)輸入重新創(chuàng)建標題欄所提供功能的代碼,例如移動和關(guān)閉窗體。為窗體添加數(shù)據(jù)成員,記錄鼠標狀態(tài):privatePointmouseOffset;privateboolisMouseDown=false;51步驟2(2)輸入重新創(chuàng)建標題欄所提供功能的代碼,5步驟3(3)添加窗體的MouseDown事件處理:privatevoidForm1_MouseDown(objectsender,MouseEventArgse){intxOffset;intyOffset;if(e.Button==MouseButtons.Left){//計算和窗體左上角的偏離量xOffset=-e.X-SystemInformation.FrameBorderSize.Width;yOffset=-e.Y-SystemInformation.CaptionHeight-SystemInformation.FrameBorderSize.Height;mouseOffset=newPoint(xOffset,yOffset);isMouseDown=true;}}52步驟3(3)添加窗體的MouseDown事件處理:6添加窗體的MouseMove事件處理privatevoidForm1_MouseMove(objectsender,MouseEventArgse){if(isMouseDown){//獲取鼠標光標的位置(以屏幕坐標表示)。

PointmousePos=Control.MousePosition; //將此Point平移指定的量。

mousePos.Offset(mouseOffset.X,mouseOffset.Y);Location=mousePos;}}53添加窗體的MouseMove事件處理privatevoid添加窗體的MouseUp事件處理privatevoidForm1_MouseUp(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Left){isMouseDown=false;}}54添加窗體的MouseUp事件處理privatevoidFMaskedTextBox控件DEMO3

55MaskedTextBox控件DEMO3

9

MaskedTextBox控件(P51)

MaskedTextBox控件,也叫掩碼文本框。它的主要作用是控制輸入文本的格式。如果輸入的內(nèi)容不滿足規(guī)定的格式,則控件不會接收該輸入。如下圖是從工具箱向窗體拖動該控件的圖示。

56MaskedTextBox控件(P51)Mask1、常用的基本屬性(1)[InsertKeyMode]屬性:指示向掩碼文本框輸入字符時的輸入模式,其屬性值有:Default、Insert和Overwrite3種。當屬性值為Default時,表示輸入模式由當時鍵盤的插入/改寫狀態(tài)決定,如果輸入時鍵盤處于改寫模式,則會改寫輸入處的字符,否則為插入字符。當屬性值為Insert時,即使鍵盤的Ins鍵被按下,也不會以改寫方式輸入字符。當屬性值為Overwrite時,則任何時候都是以改寫方式輸入字符。571、常用的基本屬性11(2)[PromptChar]屬性:指定作為占位符的字符,用于指示用戶需要輸入的字符長度,默認的占位符為下劃線“_”,需要修改時可以直接在屬性后的空白處輸入指定字符。58(2)[PromptChar]屬性:指定作為占位符的字符,用(3)[Mask]屬性:設置當前掩碼文本框輸入字符的格式。單擊[Mask]屬性后的[…]按鈕,59(3)[Mask]屬性:設置當前掩碼文本框輸入字符的格式。單彈出如圖所示的窗口,其中是一些設置好的時間、電話號碼的格式,若這些格式都不能滿足設計要求,也可以選擇自定義格式,或者在[Mask]屬性后的空白處直接輸入自定義格式。60彈出如圖所示的窗口,其中是一些設置好的時間、電話號碼的格式,6115

自定義輸入格式時,可以使用掩碼和分隔符兩類符號。掩碼用于限制用戶可輸入的符號類型,程序運行時掩碼以占位符顯示;而分隔符可作為輸入字符之間的關(guān)聯(lián)符,分隔符顯示在掩碼文本框中,且不可修改。表5-3列出了常用掩碼和分隔符的含義。

62自定義輸入格式時,可以使用掩碼和分隔符兩類符號。掩碼表5-3常用的掩碼和分隔符符號含義掩碼0數(shù)字“0”~“9”9數(shù)字“0”~“9”、空格(Space)#數(shù)字“0”~“9”、空格(Space)、“+”、“-”L數(shù)字“a”~“z”、“A”~“Z”&鍵盤可輸入字符A、a字母與數(shù)字<強制將其后輸入的字母轉(zhuǎn)換為小寫>強制將其后輸入的字母轉(zhuǎn)換為大寫分隔符.小數(shù)分隔符,即小數(shù)點-連接分隔符,數(shù)字分隔符:時間分隔符/日期分隔符$貨幣符號63表5-3常用的掩碼和分掩碼不能保證用戶輸入一定會表示給定類型的有效值,例如,輸入的年齡值可能為-9。通過將值的類型的實例賦給ValidatingType屬性,可以確保用戶輸入表示一個有效值。通過監(jiān)視TypeValidationCompleted事件,可以檢測當MaskedTextBox包含無效值時,用戶是否將焦點從該控件移開。如果鍵入驗證成功,可以通過TypeValidationEventArgs參數(shù)的ReturnValue屬性使用表示該值的對象。64掩碼不能保證用戶輸入一定會表示給定類型的有效值,例如,輸入的(4)[TextMaskFormat]屬性:表示由掩碼文本框的[Text]屬性得到的字符串中是否包含占位符、分隔符的內(nèi)容。該屬性共有4個選項:ExcludePromptAndLiterals表示占位符和分隔符均不包含;IncludePrompt表示僅包含占位符;IncludeLiterals表示僅包含分隔符;IncludePromptAndLiterals表示占位符和分隔符均包含。65(4)[TextMaskFormat]屬性:表示由掩碼文本框(5)HidePromptOnLeave屬性:指示若當前控件未處于活動狀態(tài)時,是否顯示占位苻,若屬性值為true時,表示當控件不是活動狀態(tài),隱藏占位苻;若屬性值為false時,即使控件不是活動狀態(tài),仍然顯示占位符。66(5)HidePromptOnLeave屬性:指示若當前控件2、常用的基本事件MaskInputRejected事件:當輸入字符不符合掩碼要求時觸發(fā)的操作。[例1]簡單的用戶信息登錄界面示例。(1)新建一個名為MaskedTextBoxExample的Windows應用程序項目,在[解決方案資源管理器]中Form1.cs重命名為FormMaskedTextBox.cs。如下各圖所示。672、常用的基本事件[例1]簡單的用戶信息登錄界面示例。2向Form窗體中添加5個MaskedTextBox控件、1個Button控件和7個Label控件,窗體中各控件的屬性、布局及顯示效果如圖所示。68向Form窗體中添加5個MaskedTextBox控件、1個在FormMaskedTextBox類中直接編寫MyMaskInputRejected事件和MyMaskInputReset事件。具體代碼為://若輸入不符合要求,則以紅色字體顯示輸入信息

privatevoidMyMaskInputRejected(objectsender,MaskInputRejectedEventArgse){((MaskedTextBox)sender).ForeColor=Color.Red;}//重新輸入時,以改寫方式輸入,并恢復正常的字體顏色privatevoidMyMaskInputReset(objectsender,KeyEventArgse){((MaskedTextBox)sender).InsertKeyMode=InsertKeyMode.Overwrite;((MaskedTextBox)sender).ForeColor=Color.FromName("WindowText");}69在FormMaskedTextBox類中直接編寫MyMask為所有的MaskedTextBox的MaskInputRejected事件指定事件處理函數(shù):MyMaskInputRejected為所有的MaskedTextBox的KeyDown事件指定事件處理函數(shù):MyMaskInputReset70為所有的MaskedTextBox的MaskInpu添加maskedTextBoxBirthday的TypeValidationCompleted事件代碼。將該事件代碼補充完整如下:privatevoidmaskedTextBoxBirthday_TypeValidationCompleted(objectsender,TypeValidationEventArgse){if(!e.IsValidInput){MessageBox.Show("您輸入的日期不正確!");((MaskedTextBox)sender).Focus();((MaskedTextBox)sender).InsertKeyMode=InsertKeyMode.Overwrite;}}71添加maskedTextBoxBirthday的TypeVaRadioButton實例DEMO4

72RadioButton實例DEMO4

26添加RadioButton的CheckedChanged

事件處理privatevoidrdo_CheckedChanged(objectsender,EventArgse){RadioButtonbtn=(RadioButton)sender;if(checkBox1.Checked){switch(btn.Text){case"紅色":pictureBox1.BackColor=Color.Red;break;case"藍色":pictureBox1.BackColor=Color.Blue;break;case"黑色":...}}}73添加RadioButton的CheckedChanged

事添加CheckBox的CheckedChanged

事件處理privatevoidcheckBox1_CheckedChanged(objectsender,EventArgse){if(checkBox1.Checked){foreach(Controlctlinthis.groupBox1.Controls){if(ctlisRadioButton){RadioButtonrdo=(RadioButton)ctl;if(rdo.Checked){this.rdo_CheckedChanged(rdo,null);break;}}}}else{pictureBox1.BackColor=this.BackColor;}}}74添加CheckBox的CheckedChanged

事件處理VScrollBar實例DEMO4

75VScrollBar實例DEMO4

29提示(1)設置VScrollBar的LargeChange值為1;76提示(1)設置VScrollBar的LargeChange值添加VSCrollBar的ValueChanged

事件處理privatevoidvScrollBar1_ValueChanged(objectsender,EventArgse){intr,g,b;r=vScrRed.Value;g=vScrGreen.Value;b=vScrBlue.Value;Colorc=Color.FromArgb(r,g,b);pictureBox1.BackColor=c;lblRed.Text=r.ToString();lblGreen.Text=g.ToString();lblBlue.Text=b.ToString();Invalidate(false);}77添加VSCrollBar的ValueChanged

事件處理添加CheckBox的CheckedChanged

事件處理privatevoidcheckBox1_CheckedChanged(objectsender,EventArgse){if(checkBox1.Checked){foreach(Controlctlinthis.groupBox1.Controls){if(ctlisRadioButton){RadioButtonrdo=(RadioButton)ctl;if(rdo.Checked){this.rdo_CheckedChanged(rdo,null);break;}}}}else{pictureBox1.BackColor=this.BackColor;}}}78添加CheckBox的CheckedChanged

事件處理資源管理器實例DEMO5

79資源管理器實例DEMO5

33提示(1)設置ListView的View值為Details;(2)添加命名空間:usingSystem.IO;//添加引用,以使用文件和目錄類80提示(1)設置ListView的View值為Details;初始化左面的TreeView顯示publicvoidRefreshTree(){ //Turnoffvisualupdatingandcleartree. DirectoryTreeView.BeginUpdate(); DirectoryTreeView.Nodes.Clear(); //Makediskdrivestherootnodes. string[]astrDrives=Directory.GetLogicalDrives(); foreach(stringstrinastrDrives) {TreeNodetnDrive=newTreeNode(str,0,0); //ImageIndex=0;SelectedImageIndex=0 DirectoryTreeView.Nodes.Add(tnDrive);

AddDirectories(tnDrive); if(str=="C:\\") DirectoryTreeView.SelectedNode=tnDrive; } DirectoryTreeView.EndUpdate();}81初始化左面的TreeView顯示publicvoidRe添加各個驅(qū)動器節(jié)點voidAddDirectories(TreeNodetn){tn.Nodes.Clear();stringstrPath=tn.FullPath;DirectoryInfodirinfo=newDirectoryInfo(strPath);DirectoryInfo[]adirinfo;try{adirinfo=dirinfo.GetDirectories();}catch{return;}foreach(DirectoryInfodiinadirinfo){TreeNodetnDir=newTreeNode(di.Name,1,2);tn.Nodes.Add(tnDir);}}82添加各個驅(qū)動器節(jié)點voidAddDirectories(T添加TreeView的BeforeExpand響應事件,即在節(jié)點打開前執(zhí)行privatevoidDirectoryTreeView_BeforeExpand(objectsender,System.Windows.Forms.TreeViewCancelEventArgse){ DirectoryTreeView.BeginUpdate(); foreach(TreeNodetnine.Node.Nodes) AddDirectories(tn); DirectoryTreeView.EndUpdate();}83添加TreeView的BeforeExpand響應事件,即在填充ListView,顯示文件信息publicvoidShowFiles(stringstrDirectory){ //Savedirectorynameasfield. this.strDirectory=strDirectory; FileListView.Items.Clear(); DirectoryInfodirinfo=newDirectoryInfo(strDirectory); FileInfo[]afileinfo; try { afileinfo=dirinfo.GetFiles(); } catch { return; }84填充ListView,顯示文件信息publicvoidS foreach(FileInfofiinafileinfo) { //CreateListViewItem. ListViewItemlvi=newListViewItem(fi.Name); //AssignImageIndexbasedonfilenameextension. if(Path.GetExtension(fi.Name).ToUpper()==".EXE") lvi.ImageIndex=4; else lvi.ImageIndex=3;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論