目錄
一、Form窗體
1.1窗體的創(chuàng)建和刪除
1、添加窗體
2、刪除窗體
3、多窗體的使用
1.2、窗體屬性
1.2.1更換窗體圖標(biāo)
1.2.2隱藏窗體的標(biāo)題欄(FormBorderStyle屬性)
1.2.3控制窗體的顯示位置(StartPosition屬性)
1.2.4窗體背景圖片的設(shè)置
1.2.5窗體的顯示與隱藏
1.3窗體的事件
1.3.1單擊事件(Click)
?1.3.2加載事件(Load)
1.3.3關(guān)閉事件(FormClosing)
補(bǔ)、為何關(guān)閉了窗口了但下次啟動時卻顯示還在運(yùn)行
?二、MDI窗體
?2.1設(shè)置MDI窗體
2.1.1設(shè)置父窗體
2.1.2設(shè)置子窗體
2.2排列MDI子窗體
三、窗體控件
1.1控件的概述
1.2控件的相關(guān)操作
2.1文本控件
2.1.1Label控件
2.1.2Button控件
2.1.3TextBox控件
2.1.4RichTextBox控件
超鏈接樣式
richTextBox文本框設(shè)置
3.1選擇類控件
3.1.1ComboBox控件
添加元素:分為手動和代碼添加。
設(shè)置下拉樣式(DropDownStyle)
3.1.2CheckBox控件
3.1.3RadioButton單選按鈕
1、判斷單選按鈕是否被選中
2、響應(yīng)單選按鈕選中狀態(tài)更改事件
3、單選按鈕分組
3.1.4NumericUpDown控件
1、最大值/最小值設(shè)置
2、獲取NumericUpDown控件中顯示的數(shù)值
3、設(shè)置NumericUpDown控件中數(shù)值的顯示方式
3.1.5ListBox控件
1、在ListBox控件中添加和移除項
2、創(chuàng)建總顯示滾動條的列表控件
3、在ListBox控件中選擇多項
4.1分組控件
4.1.1Panel控件
4.1.2GroupBox控件
?編輯
?4.1.3TabControl控件
1、選項卡圖片顯示樣式
2、鼠標(biāo)移入時彈出提示信息
?編輯
3、將選項卡顯示為按鈕樣式
?4、在選項卡中添加控件
5.1菜單、工具欄和狀態(tài)欄控件
5.1.1MenuStrip控件
5.1.2彈出式菜單(ContextMenuStrip)
5.1.3ToolStrip控件 (工具欄)
5.1.4StatusStrip控件(狀態(tài)欄)
6.1.1ImageList控件(圖片集)
1、ImageList控件代碼添加圖片
?2、在ImageList控件中通過代碼移除圖片
7.1PictureBox控件(圖片展示)
PictrueBox控件顯示圖片
8.1Timer控件(計時器)
1、Timer控件的常用屬性、方法和事件
?編輯?編輯
?2、計時器Timer實現(xiàn)時間改變
?9.1ListView控件(帶圖標(biāo)的選項列表)
1、在ListView控件中添加、移除項
1、添加項
2、移除項
2、默認(rèn)選擇控件中的某一項
3、為ListView控件中添加圖標(biāo)
?4、在控件中啟用平鋪視圖
5、為ListView控件中的項分組
?10.1TreeView控件(樹狀節(jié)點(diǎn))
10.1.1TreeView常用屬性和事件
10.1.2添加和刪除樹節(jié)點(diǎn)
1、添加樹節(jié)點(diǎn)
2、移除節(jié)點(diǎn)
10.1.3獲取TreeView控件中選中的節(jié)點(diǎn)
10.1.4為TreeView控件中的節(jié)點(diǎn)設(shè)置圖標(biāo)
11.1DateTimePicker控件 (日期時間框)
11.1.1使用DateTimePicker控件顯示時間
11.1.2自定義格式顯示日期
11.1.3獲取控件中選擇的日期
12.1MonthCalendar控件(日歷控件)
12.1.1MonthCalendar控件顯示周數(shù)
12.1.2在MonthCalendar控件中顯示多個月
?12.1.3在MonthCalendar控件中選擇日期范圍
13.1ErrorProvider控件(驗證文本框輸入)
1、驗證文本框
?13.2HelpProvider控件(調(diào)用幫助文檔)
13.3ProgressBar控件(進(jìn)度條)
一、Form窗體
From窗體也稱為窗口,是.NET框架的智能客戶技術(shù);
1.1窗體的創(chuàng)建和刪除
1、添加窗體
本窗體在Vs中創(chuàng)建可以右擊項目名---添加--Windows窗體。一般項目類型都是Windows窗體(.NET Framework)
2、刪除窗體
在對應(yīng)的窗體右擊,刪除即可
3、多窗體的使用
小白在第一次建立如圖多窗體時,在ctrl+F5運(yùn)行時只展示了一個窗體
?那我們可以點(diǎn)擊Program.cs在下面添加Application.Run(new 窗體名稱());即可啟動其他窗體
1.2、窗體屬性
1.2.1更換窗體圖標(biāo)
在屬性面板上選擇Icon屬性,即可更換圖標(biāo)。但圖片格式需要是ico。
1.2.2隱藏窗體的標(biāo)題欄(FormBorderStyle屬性)
屬性值 | 說明 | 屬性值 | 說明 |
Fixed3D | 固定的三位邊框 | None | 無邊框 |
FixedDialog | 固定的對話框樣式 | Sizable | 可調(diào)整大小的邊框 |
FixedSingle | 固定的單行邊框 | SizableToolWindow | 可調(diào)整大小的工具窗口邊框 |
FixedToolWindow | 不可調(diào)整大小工具窗口邊框 |
1.2.3控制窗體的顯示位置(StartPosition屬性)
屬性值 | 說明 |
CenterParent | 窗體在其父窗體居中 |
CenterScreen | 窗體在當(dāng)前顯示窗口中居中,其尺寸在窗體大小中指定 |
Manual | 窗體的位置有Location屬性確定 |
WindowsDefaultBounds | 窗體定位在windows默認(rèn)位置,其邊界也由Windows默認(rèn)決定 |
WindowsDefaultLocation | 窗體定位在windows默認(rèn)位置,其尺寸在窗體大小中指定 |
1.2.4窗體背景圖片的設(shè)置
通過設(shè)置BackgroundImage屬性可以設(shè)置背景,背景樣式的屬性則通過BackgroundImageLayout設(shè)置
屬性值 | 說明 |
Tile(默認(rèn)) | 背景圖片重復(fù) |
None | 背景圖片左邊顯示 |
None的同時RightToLeft屬性設(shè)置為Yes | 背景圖片右邊顯示 |
Center | 背景圖片居中顯示 |
Stretch | 背景圖片拉申 |
Zoom | 背景圖片按比例放大到合適大小 |
1.2.5窗體的顯示與隱藏
Form1 f=New Form1();//實例化對象
f.show(); //show()用于顯示
f.Hide(); //Hide()用于隱藏
1.3窗體的事件
1.3.1單擊事件(Click)
單擊窗體時,將會觸發(fā)的事件,如圖位置中查找該事件位置,雙擊進(jìn)去可設(shè)置事件代碼
?1.3.2加載事件(Load)
窗體在加載時,將會觸發(fā)的事件,和上圖類似位置查找即可,進(jìn)入編輯也是雙擊
1.3.3關(guān)閉事件(FormClosing)
窗體在關(guān)閉時,將會觸發(fā)的事件,和上圖類似位置查找即可,進(jìn)入編輯也是雙擊
補(bǔ)、為何關(guān)閉了窗口了但下次啟動時卻顯示還在運(yùn)行
通過我個人情況,在我們使用多窗口,如在Form1窗口的單擊事件了加入了對Form2窗體的啟動,然后并對Form1窗體進(jìn)行了隱藏,為此在對Form2窗體進(jìn)行了X關(guān)閉,但其實Form1窗體卻還在后臺啟動。
出現(xiàn)了此問題解決方法:1、最直接的就是重啟電腦。2、同時按住Ctrl+shift+esc鍵打開資源管理器找到對應(yīng)進(jìn)程進(jìn)行關(guān)閉。
如何避免此問題:在Form2關(guān)閉事件里加入對Form1的關(guān)閉。通過Application.Exct();關(guān)閉所有窗口
?二、MDI窗體
多文檔界面(multiple-document interface)簡稱MDI窗體。MDI窗體用于同時顯示多個文檔,每個文檔顯示在給自的窗口中。
以上時官方解釋,個人理解就是在父窗體中展示多個子窗體。
如下圖所示
?2.1設(shè)置MDI窗體
在MDI窗體中,起容器作用的窗體稱為父窗體,可放在父窗體中的其他窗體稱為子窗體,也稱為MDI子窗體。
2.1.1設(shè)置父窗體
要將某個窗體設(shè)置為父窗體,只要在窗體屬性面板中將IsMdiContainer屬性設(shè)置為True即可。
2.1.2設(shè)置子窗體
設(shè)置完父窗體后,在父窗體的啟動事件中通過MdiParent屬性來確定子窗體。代碼案例如下
?
private void Form1_Load(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
frm2.MdiParent = this; //展示在父窗口form1中,this表示本窗格
}
2.2排列MDI子窗體
如果一個MDI窗體中有多個子窗體同時打開,假如不調(diào)整其排列順序,界面將會非?;靵y,不宜瀏覽。可通過MdiLayout枚舉進(jìn)行設(shè)置。
枚舉值 | 說明 |
ArrangeIcons | 排列所有MDI子窗口圖標(biāo) |
Cascade | 所有MDI子窗口層疊排列 |
TileHorizontal | 水平平鋪?zhàn)哟翱?/td> |
TileVerttical | 垂直平鋪窗口 |
案例代碼如下
?
LayoutMdi(MdiLayout.TileHorizontal);//水平平鋪
LayoutMdi(MdiLayout.TileVertical);//垂直排列
三、窗體控件
1.1控件的概述
常用控件包括文本控件、選擇控件、分組控件、菜單控件、工具欄控件以及狀態(tài)欄控件
?
控件分類 | 作用 |
文本控件 | 文本控件可以在控件上顯示文本 |
選擇控件 | 主要為用戶提供選擇的項目 |
分組控件 | 使用分組控件可以將窗體中的其他控件進(jìn)行分組處理 |
菜單控件 | 為系統(tǒng)制作功能菜單,將應(yīng)用程序命令分組,使它們更容易訪問 |
工具欄控件 | 提供了主菜單中常用的相關(guān)工具 |
狀態(tài)欄控件 | 用于顯示窗體上的對象的相關(guān)信息,或者可以顯示應(yīng)用程序的信息 |
1.2控件的相關(guān)操作
在此添加和刪除控件我將不在敘述,我只說一個鎖定控件。完成鎖定窗體設(shè)置后,為了避免誤操作而改變窗體的控件設(shè)置,可通過鎖定控件對控件進(jìn)行定位。
在控件的屬性窗口中,單擊Locked屬性,并選擇為true即可鎖定控件
2.1文本控件
文本類控件主要包括Label控件(標(biāo)簽控件)、Button控件(按鈕控件)、TextBox控件(文本框控件)和RichTextBox控件(有格式文本控件)
2.1.1Label控件
a)概述:主要用于顯示用戶不能編輯的文本,也可以通過編寫代碼來設(shè)置要顯示的文本信息。
?c)顯示/隱藏控件:通過設(shè)置visible屬性(true為顯示\false為隱藏)
2.1.2Button控件
a)概述:允許用戶通過單機(jī)來執(zhí)行操作。既可以顯示文本,也可以顯示圖像。
b)響應(yīng)按鈕事的單擊事件:單擊button按鍵時引發(fā)click事件,執(zhí)行click事件中的代碼。
c)將按鈕設(shè)置為窗體"enter"按鈕:設(shè)置窗體的AcceptButton屬性,每次按enter鍵都相當(dāng)單擊此按鈕
this.AcceptButton=button1
d)將按鈕設(shè)置為"esc"按鈕:通過設(shè)置窗體的CancelButton屬性,每次按esc鍵都相當(dāng)單擊此按鈕??
this.cancelButton=button1
補(bǔ):如果想實現(xiàn)鼠標(biāo)移入和移出按鈕,改變按鈕的樣式或字體樣式,可以用OnMouseEnter(移入)和OnMouseLeave(移出)事件實現(xiàn)。
2.1.3TextBox控件
? a)概述:用于獲取用戶輸入的數(shù)據(jù)或顯示文本。文本框控件通常用于可編輯文本,也可使其成為只讀控件。文本框可以顯示多行,可以對文本換行使其符合控件的大小。
b)創(chuàng)建只讀文本框:通過設(shè)置ReadOnly屬性,就可以設(shè)置文本框是否為只讀。(代碼修改在文件夾)
private void Form1_Load(object sender, EventArgs e)
{
textBox1.ReadOnly = true; //將文本設(shè)置為只讀
textBox1.Text = "你好世界";
}
c)創(chuàng)建密碼文本框:通過設(shè)置PasswordChar(顯示符號可以自行定義)或者UseSystremPasswordChar(顯示為'大黑點(diǎn)')
private void Form1_Load(object sender, EventArgs e)
{
textBox1.PasswordChar = '#'; //設(shè)置文本框的密碼字符為@
textBox1.UseSystemPasswordChar = true; //此密碼字符為大黑點(diǎn)
}
d)創(chuàng)建多行文本框:通過設(shè)置Multiline屬性(true打開,false為關(guān)閉)
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Multiline = true; //使其顯示多行
textBox1.Height = 20; //設(shè)置文本框的行高
}
e)突出顯示文本:通過設(shè)置SelectionStart(起始索引)和SelectionLength(字符長度)屬性設(shè)置凸顯文本(簡而言之就是選中狀態(tài))
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Multiline = true; //使其顯示多行
textBox1.SelectionStart = 0; //其實索引
textBox1.SelectionLength = 5; //字符長度
textBox1.Height = 20; //設(shè)置文本框的行高
}
f)響應(yīng)式文本框的文本更改事件:當(dāng)文本框中的文本發(fā)生更改時,將會引發(fā)文本框的TextChanged事件。如Label1.Text=textBox1.Text;Label顯示的和TextBox內(nèi)容一致
2.1.4RichTextBox控件
?概述:控件用于顯示、輸入和操作帶有格式的文本。除了執(zhí)行TextBox控件的所有功能之外,還可以顯示字體、顏色和鏈接,從文件加載文本和嵌入的圖像,撤銷和重復(fù)編輯操作以及查找指定的字符。
a)在RichTextBox控件中顯示滾動條:設(shè)置Multiline屬性true為顯示滾動條false為不顯示。默認(rèn)為True;滾動條分為水平滾動條和垂直滾動條,通過設(shè)置ScrollBars屬性,其屬性值有以下幾種。
屬性值 | 說明 |
Both |
只有當(dāng)文本超出寬度或長度時,才顯示水平或垂直滾動條,或兩個滾動條都顯示. |
None |
從不顯示任何類型的滾動條 |
Horizontal |
只有當(dāng)文本超出控件的寬度時,才顯示水平滾動條。必須將WordWrap屬性設(shè)置為false,才會出現(xiàn)這種情況 |
Vertical |
只有當(dāng)文本超過控件高度時,才顯示垂直滾動條 |
ForcedHorizontal |
當(dāng)wordWrap屬性設(shè)置為false時,才顯示水平滾動條。在文本未超過控件長度時,滾動條顯示為淺灰色 |
ForcedVertical |
始終顯示垂直滾動條。在文本為超過長度時,滾動條為淺灰色 |
ForcedBoth |
始終顯示垂直滾動條。當(dāng)WordWrap屬性設(shè)置為false時,顯示水平滾動條。在文本為超過控件的寬度或長度時,兩個滾動條均顯示為灰色。 |
超鏈接樣式
//在窗體啟動時richTextBox1生成一個文本
private void 超鏈接樣式_Load(object sender, EventArgs e)
{
richTextBox1.Text = "百度 http://baidu.com";
}
//在LinkClicked事件中對網(wǎng)址進(jìn)行樣式改變
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
//實現(xiàn)內(nèi)容中的網(wǎng)址帶下劃線
System.Diagnostics.Process.Start(e.LinkText);
}
richTextBox文本框設(shè)置
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;
richTextBox2.Multiline = true;
richTextBox3.Multiline = true;
richTextBox4.Multiline = true;
richTextBox5.Multiline = true;
richTextBox6.Multiline = true;
richTextBox7.Multiline = true;
///設(shè)置scrollbars屬性,實現(xiàn)垂直水平滾動條。
richTextBox1.ScrollBars = RichTextBoxScrollBars.Both; //只要超過才會顯示
richTextBox2.ScrollBars = RichTextBoxScrollBars.None; //從不顯示
richTextBox3.ScrollBars = RichTextBoxScrollBars.Horizontal;//超過并且WORDwrap為false才會顯示水平滾動條
richTextBox4.ScrollBars = RichTextBoxScrollBars.Vertical;//只有達(dá)到高度才會顯示垂直滾動條
richTextBox5.ScrollBars = RichTextBoxScrollBars.ForcedHorizontal;//超過并且WORDwrap為false才會顯示水平滾動條,未達(dá)到為灰色
richTextBox6.ScrollBars = RichTextBoxScrollBars.ForcedVertical;//始終顯示垂直滾動條,未達(dá)到時為灰色
richTextBox7.ScrollBars = RichTextBoxScrollBars.ForcedBoth;//始終顯示垂直滾動條,WORDwrap為false才會顯示水平滾動條。未達(dá)到時為灰色
}
3.1選擇類控件
選擇類控件主要包括ComboBox控件(下拉框)、CheckBox控件(多選框)、RidioButton控件(單選按鈕)、NumericUpDown控件(數(shù)值選擇控件)和ListBox控件(列表控件)。
3.1.1ComboBox控件
ComboBox控件用于在下拉組合框中顯示數(shù)據(jù)。
ComboBox控件主要由兩部分組成:一個允許用戶輸入列表項的文本框,一個列表框。
添加元素:分為手動和代碼添加。
手動添加:
拖入ComboBox控件——選擇控件上的小三角——編輯項
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("電視");
comboBox1.Items.Add("電腦");
comboBox1.Items.Add("空調(diào)");
comboBox1.Items.Add("手表");
}
設(shè)置下拉樣式(DropDownStyle)
屬性值 | 說明 |
Simple | 使用下拉列表部分總是可見 |
DropDown(默認(rèn)值) | 使用戶可以編輯控件的文本框部分,單擊箭頭才顯示 |
DropDownList | 用戶不可編輯文本框部分,只能單擊箭頭選擇一項 |
//代碼參照格式
comboBox1.DropDownStyle= ComboBoxStyle.DropDownList;
當(dāng)comboBox1選中時comboBox2下拉框內(nèi)容隨之改變
selectedItem是獲取當(dāng)前選中項的內(nèi)容
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox2.Items.Clear(); //刪除所有下拉框的內(nèi)容
//判斷comboBox1中的值對comboBox2中的值進(jìn)行改變
if (comboBox1.SelectedItem=="電視")
{
comboBox2.Items.Add("戴爾");
comboBox2.Items.Add("聯(lián)想");
comboBox2.Items.Add("華碩");
}
/*else if...*/
}
3.1.2CheckBox控件
CheckBox控件用來表示是否選取了某個選項條件,常用于為用戶提供具有是/否或真/假值的選項。
判斷復(fù)選框是否選中/CheckedChanged事件進(jìn)行狀態(tài)更改響應(yīng)
通過在控件的Click事件中判斷CheckState屬性的返回值,得知復(fù)選框是否被選中。CheckState屬性的返回值有兩個值:Checked表示控件處于選中狀態(tài);Unchecked表示控件處于取消選中狀態(tài)
也可直接調(diào)用Checked判斷是否被選中,如果選擇則為True反之為false;
CheckedChanged事件進(jìn)行狀態(tài)更改響應(yīng):當(dāng)復(fù)選框控件狀態(tài)發(fā)生改變時則會觸發(fā)
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked) //checkBox1.CheckState==CheckState.Checked 同理
{
MessageBox.Show("選中");
}
else { MessageBox.Show("未選"); }
}
3.1.3RadioButton單選按鈕
RadioButton控件為用戶提供兩個或多個互斥選項組成的選項集。當(dāng)用戶選中某單選按鈕時,一組中的其他單選按鈕不能同時選定。
單選按鈕必須在同一組中才能實現(xiàn)單選效果。
1、判斷單選按鈕是否被選中
可通過在控件的Click事件中判斷Checked屬性的返回值,可以判斷單選按鈕是否被選中。如果是選中狀態(tài)則為true,反之為false。
?
private void radioButton1_Click(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
MessageBox.Show("yes");
}
else { MessageBox.Show("no"); }
}
//在窗體加載事件中可以設(shè)置默認(rèn)的選則單選按鈕
radioButton1.Checked=True;
2、響應(yīng)單選按鈕選中狀態(tài)更改事件
當(dāng)控件的選中狀態(tài)發(fā)生更改時,會引發(fā)控件的CheckedChanged事件
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
MessageBox.Show("單選按鈕狀態(tài)被修改");
}
private void button1_Click(object sender, EventArgs e)
{
radioButton1.Checked = true;
}
private void button2_Click(object sender, EventArgs e)
{
radioButton1.Checked=false;
}
3、單選按鈕分組
在多個需要不同的單選按鈕的條件下,如果不進(jìn)行分組,那么在整個界面中就只能一次選中一個。在進(jìn)行不同的分組時即可在不同的組中進(jìn)行單選的判定。
可以用Panel控件即可進(jìn)行分組。它的使用就是將其拖著框住分組的單選按鈕。
3.1.4NumericUpDown控件
NumericUpDown控件是一個顯示和輸入數(shù)值的控件。如下圖所示
1、最大值/最小值設(shè)置
該控件的Maximum屬性可以設(shè)置數(shù)值的最大值,如果輸入的數(shù)值大于這個屬性的值,程序?qū)⒆詣影褦?shù)值改為設(shè)置的最大值。Minimum屬性可以設(shè)置數(shù)值的最小值,該效果和最大值一致
2、獲取NumericUpDown控件中顯示的數(shù)值
?通過控件的Value屬性,可以獲取NumericUpDown空間中顯示的數(shù)值
?
private void Form1_Load(object sender, EventArgs e)
{
numericUpDown1.Maximum = 100;
numericUpDown1.Minimum = 0;
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text=numericUpDown1.Value.ToString();
}
3、設(shè)置NumericUpDown控件中數(shù)值的顯示方式
DecimalPlaces屬性用于確定在小數(shù)點(diǎn)后顯示位數(shù),默認(rèn)為0
ThousandsSeparator屬性用于確定是否每隔3個十進(jìn)制數(shù)字就插入一個分隔符,默認(rèn)為false
Hexadecimal屬性設(shè)置為true則該控件可以用十六進(jìn)制顯示,默認(rèn)為false
注:DecimalPlaces屬性的值不能小于0,或大于99;否則會報錯。
private void Form1_Load(object sender, EventArgs e)
{
numericUpDown1.Maximum = 100;
numericUpDown1.Minimum = 0;
numericUpDown1.DecimalPlaces = 1;
}
3.1.5ListBox控件
ListBox控件用于顯示一個列表,用戶可以從中選擇一項或多項。如果選項總數(shù)超出可以顯示的項數(shù),則控件會自動添加滾動條。效果圖如下
?
1、在ListBox控件中添加和移除項
通過ListBox控件的Items屬性的Add()方法和Remove()方法,可以向ListBox控件中添加和刪除項目。
private void Form1_Load(object sender, EventArgs e)
{
listBox1.Items.Add("DNF");
listBox1.Items.Add("消逝的光芒");
listBox1.Items.Remove("英雄聯(lián)盟");
}
2、創(chuàng)建總顯示滾動條的列表控件
通過設(shè)置控件的HorizontalScrollbar屬性和ScrollAlwaysVisible屬性可以使控件總顯示滾動條。前者為水平滾動條后者為垂直滾動條
private void Form1_Load(object sender, EventArgs e)
{
//添加元素
listBox1.Items.Add("DNF");
listBox1.Items.Add("消逝的光芒");
//刪除元素
listBox1.Items.Remove("英雄聯(lián)盟");
//添加水平滾動條
listBox1.HorizontalScrollbar = true;
//添加垂直滾動條
listBox1.ScrollAlwaysVisible = true;
}
3、在ListBox控件中選擇多項
通過設(shè)置SelectionMode屬性,可以在控件中選擇多項。SelectionMode屬性時SelectionMode枚舉值之一,默認(rèn)為SelectionMode.One。
枚舉成員 | 說明 |
MultiExtended | 可以選擇多項,并且用戶可使用Shift鍵、CTRL鍵和箭頭來選擇 |
MultiSimple | 可以選擇多項 |
None | 無法選擇項 |
One | 只能選擇一項 |
private void Form1_Load(object sender, EventArgs e)
{
listBox1.SelectionMode=SelectionMode.MultiExtended;
}
4.1分組控件
4.1.1Panel控件
Panel控件用于為其他控件提供可識別的分組。該控件可以使窗體分類更詳細(xì),更便于理解,同時可依有滾動條。
private void Form1_Load(object sender, EventArgs e)
{
panel1.Visible=false; //隱藏控件
richTextBox1.Text = " 對酒當(dāng)歌,人生幾何!\r\n\r\n譬如朝露,去日苦多。\r\n\r\n慨當(dāng)以慷,憂思難忘。\r\n\r\n何以解憂?唯有杜康。\r\n\r\n青青子衿,悠悠我心。\r\n\r\n但為君故,沉吟至今。\r\n\r\n呦呦鹿鳴,食野之蘋。\r\n\r\n我有嘉賓,鼓瑟吹笙。\r\n\r\n明明如月,何時可掇?\r\n\r\n憂從中來,不可斷絕。\r\n\r\n越陌度阡,枉用相存。\r\n\r\n契闊談讌,心念舊恩。\r\n\r\n月明星稀,烏鵲南飛。\r\n\r\n繞樹三匝,何枝可依?\r\n\r\n山不厭高,海不厭深。\r\n\r\n周公吐哺,天下歸心。 ";
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("請輸入內(nèi)容");
textBox1.Focus(); //將光標(biāo)定位到此控件內(nèi)
}
else
{
panel1.Visible = true;
}
}
?效果展示
補(bǔ)充:如果將Panel控件的Enabled屬性(設(shè)置控件是否可以對用戶交互做出響應(yīng))設(shè)置為false,那么該容器中的所有控件將被設(shè)置為不可用狀態(tài)
4.1.2GroupBox控件
GroupBox控件主要為其他控件提供分組,按照控件的分組來細(xì)分窗體的功能。
其在所包含的控件集周圍總是顯示邊框,并且可以顯示標(biāo)題,但是GroupBox控件沒有滾動條。
?4.1.3TabControl控件
TabControl控件用來添加多個選項卡,并可在選項卡上添加子控件。這樣就可以把窗體設(shè)計成多頁,使窗體功能劃分為多個部分。
選項卡中可以包含圖片或其他控件。選項卡控件還可以用來創(chuàng)建用于設(shè)置一組相關(guān)的屬性的屬性頁
TabControl控件包含選項卡頁,TabPage控件表示選項卡。
TabControl控件的TabPages屬性表示其中所有TabPage控件的集合。
Tabpages集合中TabPage選項卡的順序反映了TabControl控件中選項卡的順序
1、選項卡圖片顯示樣式
通過TabControl控件和組成控件上各選項卡的TabPage對象屬性,可更改Windows窗體中選項卡的外觀。
如將TabControl控件的ImgeList屬性設(shè)置為ImgeList控件,配合TabPange中ImageIndex屬性對選項卡進(jìn)行圖片設(shè)置。
?
private void Form1_Load(object sender, EventArgs e)
{
//設(shè)置控件的ImageList屬性為ImageList1控件
tabControl1.ImageList = imageList1;
//將選項卡的圖標(biāo)和ImageList1圖片位置索引進(jìn)行對接。
tabPage1.ImageIndex = 0;
tabPage2.ImageIndex= 0;
//設(shè)置選項卡顯示的文本,設(shè)置其Text屬性
tabPage1.Text = "選項卡1";
tabPage2.Text = "選項卡2";
}
2、鼠標(biāo)移入時彈出提示信息
將TabControl控件的ShowToolTips屬性設(shè)置為true;然后在tabPage選項卡的ToolTipText屬性中輸入相關(guān)的提示信息即可。
private void Form1_Load(object sender, EventArgs e)
{
//設(shè)置控件的ImageList屬性為ImageList1控件
tabControl1.ImageList = imageList1;
//設(shè)置選項卡顯示的文本,設(shè)置其Text屬性
tabPage1.Text = "選項卡1";
tabPage2.Text = "選項卡2";
tabControl1.ShowToolTips = true;
//鼠標(biāo)移入選項卡彈出提示
tabPage2.ToolTipText = "這是選項卡2";
}
3、將選項卡顯示為按鈕樣式
只需要將TabConTrol控件的Appearance屬性設(shè)置為Button或FlatButtons,即可設(shè)置!
?
private void Form1_Load(object sender, EventArgs e)
{
//設(shè)置控件的ImageList屬性為ImageList1控件
tabControl1.ImageList = imageList1;
//設(shè)置選項卡顯示的文本,設(shè)置其Text屬性
tabPage1.Text = "選項卡1";
tabPage2.Text = "選項卡2";
//設(shè)置為按鈕樣式
tabControl1.Appearance = TabAppearance.Buttons;
}
?4、在選項卡中添加控件
通過tabPage選項卡的Controls屬性的Add()方法,向選項中添加一個控件。也可直接將控件拖進(jìn)去
private void Form1_Load(object sender, EventArgs e)
{
//設(shè)置控件的ImageList屬性為ImageList1控件
tabControl1.ImageList = imageList1;
//設(shè)置選項卡顯示的文本,設(shè)置其Text屬性
tabPage1.Text = "選項卡1";
tabPage2.Text = "選項卡2";
Button bt1 = new Button();
bt1.Text = "按鈕1";
tabPage1.Controls.Add(bt1);
}
5.1菜單、工具欄和狀態(tài)欄控件
菜單時窗體應(yīng)用程序主要的用戶界面要素,工具欄為應(yīng)用提供了操作系統(tǒng)的界面,狀態(tài)欄顯示系統(tǒng)的一些狀態(tài)信息。
5.1.1MenuStrip控件
MenuStrip控件是程序的主菜單。MenuStrip控件取代了先前版本的MainMenu控件,支持多文檔界面、菜單合并、工具提示和溢出。
程序員可通過添加訪問鍵、快捷鍵、選中標(biāo)記、圖像和分割條來增強(qiáng)菜單的可用性和可讀性。
快捷鍵只需要在后面加個(&鍵位),使用ALT+鍵位即可使用
5.1.2彈出式菜單(ContextMenuStrip)
彈出式菜單也成為“右鍵快捷菜單”,在點(diǎn)擊右鍵時彈出,其位置是由鼠標(biāo)點(diǎn)擊的位置來確定的。
5.1.3ToolStrip控件 (工具欄)
ToolStrip控件是.NET框架3.5以上增加的新控件。工具欄其實就是相當(dāng)于工廠每個人的工具箱。
工具欄的下來菜單中有八中不同的類型
類型 | 說明 |
Button | 包含文本和圖像中可讓用戶選擇的項 |
Label | 包含文本和圖像的項,不可以讓用戶選擇,可以顯示超鏈接。 |
SplitButton | 在Button的基礎(chǔ)上增加了一個下來菜單 |
DropDowmButton | 用于下拉菜單選擇項 |
Separator | 分隔符 |
ComboBox | 顯示一個下拉框 |
TextBox | 顯示一個文本框 |
ProgressBar | 顯示一個進(jìn)度條 |
5.1.4StatusStrip控件(狀態(tài)欄)
StatusStrip控件通常處于窗體發(fā)的最底部,用于顯示窗體上對象的相關(guān)信息,或者可以顯示應(yīng)用程序的信息。
?
控件名 | 說明 |
StatusLabel | 用于顯示文本 |
ProgressBar | 用于顯示進(jìn)度條 |
DropDowmButton | 用于下拉菜單選擇項 |
SplitButton | 在Button的基礎(chǔ)上增加了一個下來菜單 |
private void Form1_Load(object sender, EventArgs e)
{
//在任務(wù)欄上顯示日期
toolStripStatusLabel1.Text = DateTime.Now.ToString();
//進(jìn)度條最大值與最小值設(shè)置
toolStripProgressBar1.Minimum = 0;
toolStripProgressBar1.Maximum = 100;
toolStripProgressBar1.Step = 2; //進(jìn)度條的增值
for (int i = 0; i < 100; i++)
{
toolStripProgressBar1.PerformStep(); //按照Step屬性的數(shù)量增加進(jìn)度欄的當(dāng)前位置
}
}
6.1.1ImageList控件(圖片集)
ImageList控件用于存儲圖像資源,并在控件上顯示出來,這樣就簡化了對圖像的管理。
ImageList控件實際上相當(dāng)于一個圖片集。在如pictureBox控件中展示對應(yīng)的圖片,且圖片在ImageList控件中也是用索引來判斷位置。
?一般ImageList控件都是與pictureBox控件結(jié)合出現(xiàn),并且ImageList控件并不會在窗體中展示,他只是一個用于存放圖片的容器。
圖片可以手動放入和移除也可以通過代碼加入和移除;
1、ImageList控件代碼添加圖片
通過ImageList控件的Images屬性的Add()方法向控件中添加圖像
private void Form1_Load(object sender, EventArgs e)
{
//獲取圖片路徑
string a = "C:\\Users\\Promise\\Pictures\\4.jpg";
Image b=Image.FromFile(a,true);
//保存圖片
imageList1.Images.Add(b);
//在pictureBox中展示圖片,通過Images屬性獲取圖片索引位置
pictureBox1.Image = imageList1.Images[0];
}
?2、在ImageList控件中通過代碼移除圖片
在ImageList控件中,RemoveAt()方法可以移除單個圖像,使用Clear()方法可以移除所有圖像。
private void button1_Click(object sender, EventArgs e)
{
if (imageList1.Images.Count==0) //判斷imagelist中是否存在圖片
{
MessageBox.Show("沒有圖片");
}
else
{
imageList1.Images.RemoveAt(0);
//RemoveAt(圖片索引位置);
}
}
7.1PictureBox控件(圖片展示)
PictureBox控件是用于顯示圖像在Windows窗體控件,通常用于在窗體的指定位置顯示圖片,它可手動添加圖片,也可代碼添加,并且多與ImageList控件結(jié)合出現(xiàn)。
屬性 | 說明 |
Image | 用于設(shè)置顯示在圖片框控件上的圖像 |
ImageLocation | 用于設(shè)置在圖片框控件上的圖像路徑 |
SizeMode | 用于控制調(diào)整控件或圖片的大小及放置位置 |
屬性值 | 說明 |
Normal | 圖像被放置于空間的左上角,如果圖片大于控件大小則超出部分被裁剪掉。 |
StretchImage | 控件中的圖像被拉伸或收縮,用于適應(yīng)控件的大小 |
AutoSize | 調(diào)整控件的大小,使其等于所包含的圖像大小 |
CenterImage | 如果圖片小于空間,則居中顯示,反之多出部分被裁剪。 |
Zoom | 圖像大小按其原有的長寬比例等比例方法或縮小 |
PictrueBox控件顯示圖片
private void Form1_Load(object sender, EventArgs e)
{
//pictureBox1.Image = Image.FromFile("C:\\Users\\Promise\\Pictures\\9.jpg");
//兩者效果一致
pictureBox1.ImageLocation = "C:\\Users\\Promise\\Pictures\\9.jpg";
}
其區(qū)別在于Image屬性是圖像對象,而ImageLocation屬性是圖像路徑,是文本型。
8.1Timer控件(計時器)
計時器Timer控件是指按用戶定義的時間間隔引發(fā)事件的控件,簡而言之程序每隔一段時間重復(fù)執(zhí)行一個操作。
1、Timer控件的常用屬性、方法和事件
屬性 | 說明 |
Interval | 事件發(fā)送的間隔(頻率),以毫秒為單位 |
Enable | 設(shè)置計時器是否啟用,布爾類型。 |
方法 | 說明 |
Start() | 啟動計時器 |
Stop() | 停止計時器 |
事件 | 說明 |
Tick | 定時間隔到自動引發(fā)的事件 |
?2、計時器Timer實現(xiàn)時間改變
創(chuàng)建一個Label控件獲取當(dāng)前時間DateTime.Now.ToString()。再通過Timer實現(xiàn)刷新時間獲取
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToString(); //獲取當(dāng)前時間
timer1.Enabled = true; //啟動Timer
}
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text= DateTime.Now.ToString(); //根據(jù)設(shè)置的時間間隔刷新時間
}
?9.1ListView控件(帶圖標(biāo)的選項列表)
?ListView控件用于顯示帶圖標(biāo)的選項列表,可以顯示大圖標(biāo)、小圖標(biāo)和數(shù)據(jù)。使用ListView控件可以創(chuàng)建類似Windows資源管理器右窗口的用戶界面。
通過View屬性可設(shè)置控件中顯示的方法
屬性值 | 說明 |
Details | 每個項顯示在不同的行上,并帶有關(guān)于列中所排列的各項的進(jìn)一步信息。最左邊的列包含一個小圖標(biāo)和標(biāo)簽,后面的列包含應(yīng)用程序指定的子項。列顯示一個標(biāo)頭,它可以顯示列的標(biāo)題。用戶可以在運(yùn)行時調(diào)整各列大小。 |
LargeIcon | 每個項都顯示為一個最大的圖標(biāo),在它的下面有一個標(biāo)簽。這是默認(rèn)的視圖模式 |
List | 每個項都顯示為一個小圖標(biāo),在它右邊帶一個標(biāo)簽,各項排列在列中,沒有列標(biāo)頭 |
SmaLLIcon | 每個項顯示為一個小圖標(biāo),在他右邊帶一個標(biāo)簽 |
Tile | 每個項都顯示為一個完整大小的圖標(biāo),在它的右邊帶項標(biāo)簽和子項信息。顯示的子項信息由應(yīng)用程序指定。 |
1、在ListView控件中添加、移除項
1、添加項
可以使用控件Items屬性的Add()方法向控件中添加項。
private void Form1_Load(object sender, EventArgs e)
{
listView1.Items.Add("穿越火線");
listView1.Items.Add("英雄聯(lián)盟");
listView1.Items.Add("CS·GO");
listView1.Items.Add("消逝的光芒");
}
?在控件中添加完項目后,可以用CheckBoxes屬性顯示復(fù)選框,以便用戶可以選中要對其執(zhí)行操作的項
2、移除項
通過控件中Items屬性的ReMoveAt()或Clear()方法可以移除控件中的項。
private void button1_Click(object sender, EventArgs e)
{
listView1.Items.RemoveAt(listView1.Items.Count - 1); //移除其中最后一項
listView1.Items.RemoveAt(listView1.SelectedItems[0].Index); //移除選定的項
}
?在刪除控件中的項目前,必須對項目的個數(shù)進(jìn)行判斷。如果為0,則不進(jìn)行項目的刪除;否則會觸發(fā)異常。
2、默認(rèn)選擇控件中的某一項
可以通過控件的Selected屬性設(shè)置控件中的選擇項。
private void Form1_Load(object sender, EventArgs e)
{
listView1.Items.Add("穿越火線");
listView1.Items.Add("英雄聯(lián)盟");
listView1.Items.Add("CS·GO");
listView1.Items.Add("消逝的光芒");
listView1.Items[3].Selected=true; //默認(rèn)選擇
//Items[索引位置]
}
3、為ListView控件中添加圖標(biāo)
需要結(jié)合ImageList控件來設(shè)置其圖標(biāo)。并結(jié)合控件的LargeImageList屬性。
private void Form1_Load(object sender, EventArgs e)
{
listView1.LargeImageList = imageList1; //設(shè)置控件LargeImageList屬性
listView1.Items.Add("穿越火線");
listView1.Items.Add("英雄聯(lián)盟");
listView1.Items.Add("CS·GO");
listView1.Items.Add("消逝的光芒");
listView1.Items[0].ImageIndex= 0; //給指定索引項獲取指定索引位置的圖片
listView1.Items[1].ImageIndex= 1;
// Items[項目索引].ImageIndex=圖片索引;
}
?4、在控件中啟用平鋪視圖
使用平鋪功能可以在圖形信息和文本信息之間提供一種視覺平衡。
如果要使用平鋪視圖,需要將View屬性設(shè)置為Tile,可以通過設(shè)置TileSize屬性來調(diào)整平鋪大小。
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Tile;
listView1.LargeImageList = imageList1; //設(shè)置控件LargeImageList屬性
listView1.Items.Add("穿越火線");
listView1.Items.Add("英雄聯(lián)盟");
listView1.Items.Add("CS·GO");
listView1.Items.Add("消逝的光芒");
listView1.Items[0].ImageIndex= 0; //給指定索引項獲取指定索引位置的圖片
listView1.Items[1].ImageIndex = 1;
listView1.TileSize = new Size(500, 3); //設(shè)置控件平鋪大小,(長,高)
}
5、為ListView控件中的項分組
可以使用ListView組按字母順序、日期或任何其他邏輯組合對項進(jìn)行分組,從而簡化大型列表的導(dǎo)航。
若要啟用分組,首先必須在設(shè)計器中或以編程方式房間一個或多個組。
private void Form1_Load(object sender, EventArgs e)
{
//創(chuàng)建兩個組
listView1.Groups.Add(new ListViewGroup("FPS",HorizontalAlignment.Left));
listView1.Groups.Add(new ListViewGroup("5v5", HorizontalAlignment.Left));
//添加項
listView1.Items.Add("穿越火線");
listView1.Items.Add("英雄聯(lián)盟");
listView1.Items.Add("CS·GO");
listView1.Items.Add("消逝的光芒");
//將項分配給組
listView1.Items[0].Group = listView1.Groups[0];
listView1.Items[2].Group = listView1.Groups[0];
listView1.Items[3].Group = listView1.Groups[0];
listView1.Items[1].Group = listView1.Groups[1];
}
?如果想臨時禁用分組功能,可以將ShowGroups屬性設(shè)置為False。
?10.1TreeView控件(樹狀節(jié)點(diǎn))
TreeView控件可以為用戶顯示節(jié)點(diǎn)層次結(jié)構(gòu),每個節(jié)點(diǎn)又可以包含子節(jié)點(diǎn),包含子節(jié)點(diǎn)的節(jié)點(diǎn)叫做父節(jié)點(diǎn)。
10.1.1TreeView常用屬性和事件
屬性 | 說明 |
Name | 獲取或設(shè)置控件名稱 |
Nodes | 控件根節(jié)點(diǎn)集合 |
SelectedNode | 獲取或設(shè)置當(dāng)前控件中選定的根節(jié)點(diǎn) |
ImageList | 獲取或設(shè)置控件中搜使用的圖像集,關(guān)聯(lián)ImageList控件 |
ImageIndex | 獲取或設(shè)置樹節(jié)點(diǎn)顯示的圖像,在ImageList圖像集中的索引 |
SelectedImageIndex | 獲取或設(shè)置節(jié)點(diǎn)被選中時顯示的圖像,在ImageList圖像集中的索引 |
方法 | 說明 |
AfterCollapse | 在折疊樹節(jié)點(diǎn)后觸發(fā) |
AfterExpand | 在展開樹節(jié)點(diǎn)后觸發(fā) |
AfterSelect | 在更改選中節(jié)點(diǎn)后觸發(fā) |
Click | 在單擊控件時觸發(fā) |
10.1.2添加和刪除樹節(jié)點(diǎn)
1、添加樹節(jié)點(diǎn)
使用Nodes屬性的Add()方法,可以向控件中添加節(jié)點(diǎn)。
private void Form1_Load(object sender, EventArgs e)
{
TreeNode tn1 = treeView1.Nodes.Add("商品"); //父節(jié)點(diǎn)
TreeNode tn2 = new TreeNode("商品名"); //二級節(jié)點(diǎn)
TreeNode tn3 = new TreeNode("可樂"); //三級節(jié)點(diǎn)
tn1.Nodes.Add(tn2); //將二級節(jié)點(diǎn)放到父節(jié)點(diǎn)中
tn2.Nodes.Add(tn3); //將三級節(jié)點(diǎn)放到二級節(jié)點(diǎn)中
tn3.Nodes.Add("18元"); //在三級節(jié)點(diǎn)下新建一個四級節(jié)點(diǎn)
}
?注:在上一級節(jié)點(diǎn)下新建一個節(jié)點(diǎn),并且此節(jié)點(diǎn)下還要包含另個一節(jié)點(diǎn)則需要將其賦值給一個變量。
2、移除節(jié)點(diǎn)
使用Nodes屬性的Remove()方法可以從樹節(jié)點(diǎn)集合中移除指定的樹節(jié)點(diǎn)。
private void button1_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Text == "商品") //如果為根節(jié)點(diǎn)則提示
{
MessageBox.Show("請選擇要刪除的子節(jié)點(diǎn)");
}
else
{
treeView1.Nodes.Remove(treeView1.SelectedNode); //刪除選定的子節(jié)點(diǎn)
}
}
10.1.3獲取TreeView控件中選中的節(jié)點(diǎn)
可以在控件的AfterSelect事件中,使用EventArgs對象返回對已單擊節(jié)點(diǎn)對象的引用。通過檢查TreeViewEventArg類(它包含與事件有關(guān)的數(shù)據(jù)),確定單機(jī)了那個節(jié)點(diǎn)
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
string fill = e.Node.Text;
MessageBox.Show("當(dāng)前選中節(jié)點(diǎn)是" + fill);
/* 也可以是一下方法
TreeNode selectedNode=this.treeView1.SelectedNode;
MessageBox.Show(selectedNode.Text);
*/
//兩者區(qū)別,前者是封裝好的,后者則是調(diào)用其方法獲取
}
?注:在BeforeCheck(在選中樹節(jié)點(diǎn)復(fù)選框前發(fā)生)或AfterCheck(再選中舒解帶你復(fù)選框后發(fā)生)在以上事件中盡可能不要使用TreeNode.Checked屬性。因為可能導(dǎo)致選中內(nèi)容不一致。
10.1.4為TreeView控件中的節(jié)點(diǎn)設(shè)置圖標(biāo)
該控件可在每個節(jié)點(diǎn)旁顯示圖標(biāo);圖標(biāo)緊挨著節(jié)點(diǎn)文本的左側(cè)。并且實現(xiàn)圖標(biāo)要結(jié)合ImageList圖片集控件能更好的實現(xiàn);代碼如下:
private void Form1_Load(object sender, EventArgs e)
{
TreeNode tn1 = treeView1.Nodes.Add("商品"); //父節(jié)點(diǎn)
TreeNode tn2 = new TreeNode("商品名"); //二級節(jié)點(diǎn)
TreeNode tn3 = new TreeNode("可樂"); //三級節(jié)點(diǎn)
tn1.Nodes.Add(tn2); //將二級節(jié)點(diǎn)放到父節(jié)點(diǎn)中
tn2.Nodes.Add(tn3); //將三級節(jié)點(diǎn)放到二級節(jié)點(diǎn)中
tn3.Nodes.Add("18元"); //在三級節(jié)點(diǎn)下新建一個四級節(jié)點(diǎn)
treeView1.ImageList = imageList1; //TreeView1控件ImageList屬性綁定指定的圖片集
treeView1.ImageIndex = 0; //確定正常和展開狀態(tài)下的節(jié)點(diǎn)顯示的圖像
treeView1.SelectedImageIndex = 1; //確定選定狀態(tài)下節(jié)點(diǎn)顯示的圖像
}
11.1DateTimePicker控件 (日期時間框)
DateTimePicker控件用于選擇日期和時間,DateTimePicker控件只能選擇一個時間,而不是連續(xù)的時間段,也可以直接輸入日期和時間。
11.1.1使用DateTimePicker控件顯示時間
通過將控件的Format屬性設(shè)置為Time,實現(xiàn)控件只顯示時間。
Format屬性用于獲取或設(shè)置控件中顯示的日期和時間格式。
枚舉值 | 說明 |
Custom | DateTimePicker控件以自定義格式顯示日期和時間 |
Long | DateTimePicker控件以用戶操作系統(tǒng)設(shè)置的長日期格式顯示日期和時間 |
Short | DateTimePicker控件以用戶操作系統(tǒng)設(shè)置的段日期格式顯示日期和時間 |
Time | DateTimePicker控件以用戶操作系統(tǒng)設(shè)置的時間格式顯示日期和時間 |
private void Form1_Load(object sender, EventArgs e)
{
dateTimePicker1.Format = DateTimePickerFormat.Time;
label1.Text = dateTimePicker1.Text;
}
補(bǔ):如果想在該控件內(nèi)用按鈕調(diào)整時間值,需要將ShowUpDown屬性設(shè)置為true。
11.1.2自定義格式顯示日期
通過設(shè)置DateTimePicker控件的CustomFormat屬性,可自定義日期時間格式字符串。
注意:Format屬性必須設(shè)置為DateTimePickerFormat.Custom,才能影響顯示日期和時間的格式
private void Form1_Load(object sender, EventArgs e)
{
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MMMM dd,yyyy - dddd";
label1.Text = dateTimePicker1.Text;
}
11.1.3獲取控件中選擇的日期
調(diào)用控件的Text屬性以返回與控件中的格式相同的完整值,或調(diào)用Value屬性的適當(dāng)方法來返回部分值。
這些方法包括Year、Month和Day等,使用ToString將信息轉(zhuǎn)換成可現(xiàn)實給用戶的字符串
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = dateTimePicker1.Text;
label2.Text=dateTimePicker1.Value.Year.ToString(); //年
label4.Text=dateTimePicker1.Value.Month.ToString(); //月
label6.Text=dateTimePicker1.Value.Day.ToString(); //日
}
補(bǔ):如果想要直接獲取當(dāng)前系統(tǒng)的日期和時間,可以使用Value屬性下的ToShortDateString()和ToShortTimeString()方法。
12.1MonthCalendar控件(日歷控件)
MonthCalendar控件提供了一個直觀的圖形化界面,可以讓用戶查看和設(shè)置日期。并且用鼠標(biāo)拖拽可以選取一個連續(xù)的時間,包括起始時間和結(jié)束時間。
12.1.1MonthCalendar控件顯示周數(shù)
將ShowWeekNumbers屬性設(shè)置為True,實現(xiàn)控件中顯示周數(shù),也可直接在屬性面板更改。
private void Form1_Load(object sender, EventArgs e)
{
monthCalendar1.ShowWeekNumbers = true;
}
12.1.2在MonthCalendar控件中顯示多個月
該控件最多可同時顯示12個月。默認(rèn)為1個月,但可以通過設(shè)置CalendarDimensions屬性置頂顯示多少個月以及它們在空間中的排列方式。
注意:CalendarDimensions屬性一次只顯示一個日歷年,并且最多可顯示12個月。行和列的有效組合得到的最大乘積為12,對于大于12的值,將在最適合的基礎(chǔ)上修改顯示。
private void Form1_Load(object sender, EventArgs e)
{
monthCalendar1.CalendarDimensions = new Size(12, 12);
}
?12.1.3在MonthCalendar控件中選擇日期范圍
如果在控件中選擇日期范圍,必須在Datechanged事件中設(shè)置SelectionStart和SelectionEnd屬性。這兩個屬性分別用于設(shè)置日期的其實和結(jié)束。
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
label1.Text = monthCalendar1.SelectionStart.ToString();
label2.Text = monthCalendar1.SelectionEnd.ToString();
}
13.1ErrorProvider控件(驗證文本框輸入)
ErrorProvider控件可以在不打擾用戶的情況下向用戶顯示有錯誤發(fā)生。當(dāng)驗證用戶在窗體中的輸入或顯示數(shù)據(jù)集內(nèi)的錯誤時,一般要用到此控件。
ErrorProvider控件通過SetError()方法設(shè)置指定控件的錯誤描述字符串。
1、驗證文本框
此處用到textbox控件的Validating事件。此事件是在控件驗證時發(fā)生
private void textBox1_Validating(object sender, CancelEventArgs e)
{
if (textBox1.Text == "")
{
errorProvider1.SetError(textBox1, "不可為空");
}
}
?13.2HelpProvider控件(調(diào)用幫助文檔)
HelpProvider控件可以將幫助文件(.htm文件或.chm文件)與windows應(yīng)用程序相關(guān)聯(lián),為特定對話框或?qū)υ捒蛑械奶囟臻g提供區(qū)分上下文的幫助;可以打開幫助文件到特定部分,如目錄、索引或搜索功能的主頁。
通過這只控件的HelpNamespace屬性以及SetShowHelp()方法,實現(xiàn)當(dāng)按F1鍵時,打開指定的幫助文件。
private void Form1_Load(object sender, EventArgs e)
{
string fill = "F:\\web代碼\\炫酷.html"; //獲取路勁
helpProvider1.HelpNamespace = fill; //設(shè)置控件的屬性
helpProvider1.SetShowHelp(this, true); //設(shè)置SetShowHelp()方法是否顯示指定控件的幫助信息
}
13.3ProgressBar控件(進(jìn)度條)
ProgressBar控件通過在水平放置的方框中顯示適當(dāng)數(shù)目的矩形,指示工作的進(jìn)度。
屬性 | 說明 |
value | 表示操作過程中已完成的進(jìn)度 |
Minimum | 設(shè)置進(jìn)度條最小值 |
Maximum | 設(shè)置進(jìn)度條最大值 |
注意:ProgressBar控件只能以水平方向顯示,如果想改變控件的顯示樣式,可以用ProgressBarRenderer類來實現(xiàn),如縱向進(jìn)度條或在進(jìn)度條上顯示文本。文章來源:http://www.zghlxwxcb.cn/news/detail-679799.html
private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Minimum = 0; //最小值
progressBar1.Maximum = 1000; //最大值
progressBar1.Step = 100; //遞增值,默認(rèn)為10
for (int i = 0; i <= 1000; i++) //循環(huán)遞增
{
progressBar1.PerformStep(); //開始進(jìn)度條遞增
}
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-679799.html
到了這里,關(guān)于Windows窗體學(xué)這一篇就夠了(C#控件講解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!