iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 27
0
Software Development

轉職初新者系列-C#初學攻略心法系列 第 27

[2018鐵人賽Day27]C#初學攻略心法-摘星手之ComboBox擴充方法

呃呃,筆者朋友對筆者說,你這支勇者好像很威啊,但你說明的技術怎連三歲小屁孩都會啊!?
你...說...什...麼....
甚麼叫做三歲小屁孩都會啊,不然旁邊那個弟弟,來哥哥這裡,你看一下這篇,看你看不看得懂
弟弟:我看得懂啊!
啥會!這什麼世界啊,現在是出生自帶天生天賦是嗎...這逆天了吧!

不信邪,弟弟你跟哥哥說看看,你看得懂什麼了?說對給你獎勵唷!
弟弟:魔法儲存書卡
不是啦,是下面的英文字母
弟弟:哥哥,你獎勵先給我,我才要告訴你
呃...好吧
(給了獎勵後...)
弟弟:我還看不懂英文啊,謝謝哥哥獎勵
你...該死的屁孩!!!

轉過頭怒瞪好友,咬牙切齒帶著憤怒的語調:你!死!定!了!
筆者朋友:來啊,來啊!打我啊,笨蛋!打我就是笨蛋唷!
哼!沒關係,我看你好像話噎在喉嚨了,來∼你來∼我保證不打你!
(準備施展出哈姆立克法...)

==============================

剛去了圖書館看了一下,學會了新的絕技「摘星手」
顧名思義,把看到的星星削摳下來啦XD

呃...手癢來試看看吧!
看到一顆暗紅色的星星,就你了
「Book!」介面呼喚in摘星手
目標那顆星星給我弄下來!
「請說出正確的名稱」

什麼鬼?名稱?
尼瑪的!書上有說到這項嗎...

「Book!」
摘星手,使用範圍技能摘星僅需說出第一顆跟最後一顆即可,單體星擊則需說出要摘星的名稱

這...坑爹了吧,我哪會知道你他奶奶的名稱啊!!!
就像ComboBox他的名稱就是值,想要隱含值都不行啊
呃...不對,好像有辦法,讓我們來探討看看

==============================

[Step by Step簡易實戰]
Step1.
請建立個新方案為ComboBoxFunction方案

https://ithelp.ithome.com.tw/upload/images/20180115/20091333EvjJpvYGsU.jpg

Step2.
請在工具箱,拉出一個Button、一個ComboBox
並點擊Button按鈕,來撰寫相關Code

https://ithelp.ithome.com.tw/upload/images/20180115/20091333i7zDqYA1HQ.jpg

Step3.
接著先新增此次要用的public class ListItem
並在裡頭加入相關Code

public class ListItem
{
	/// <summary>
	/// 使物件有Text及Value值,並能取得所選的代表值
	/// </summary>
	/// <param name="text">代表字</param>
	/// <param name="value">代表值</param>
	public ListItem(string text, string value)
	{
		Text = text;
		Value = value;
	}

	/// <summary>
	/// 取得字樣
	/// </summary>
	public string Text { get; set; }

	/// <summary>
	/// 取得數值
	/// </summary>
	public string Value { get; set; }

	public override string ToString()
	{
		return Text;
	}
}

https://ithelp.ithome.com.tw/upload/images/20180115/200913339VYggscuoi.jpg

Step4.
雙點擊Form表單,並撰寫ComboBox選項

ListItem[] ComboBoxItems = {
		new ListItem("One Star", "one"),
		new ListItem("Two Star", "two"),
		new ListItem("Three Star", "three"),
	};
comboBox1.Items.AddRange(ComboBoxItems);

https://ithelp.ithome.com.tw/upload/images/20180115/200913335XlHBgOKxD.jpg

Step5.
在Button撰寫取出ComboBox選取到的代表字跟代表值

//取出選取的ComboBox值
MessageBox.Show("取代表字:" + ((ListItem)comboBox1.Items[comboBox1.SelectedIndex]).Text + Environment.NewLine +
				"取代表值:" + ((ListItem)comboBox1.Items[comboBox1.SelectedIndex]).Value);

https://ithelp.ithome.com.tw/upload/images/20180115/20091333f2Hcju0uyy.jpg

Step6.
按下F5執行程式,測試看看是否功能正確吧
選取後,點擊Button應該會跳出訊息框資訊,內有取出的代表字跟代表值

https://ithelp.ithome.com.tw/upload/images/20180115/20091333Hzg9AD5N7P.jpg

https://ithelp.ithome.com.tw/upload/images/20180115/20091333wmRoPYKq8i.jpg

==============================

呃...忽然看到一顆隕石飛到山的另一邊
哇靠!我只是要星削,你給我隕石做啥!
還好沒砸到這邊來...(全城的人皆看傻了眼)
已有捷報:邪魔山周圍大面積毀壞,僅主城無任何損害!
(看來這Boss比想像中難纏...)

心裡OS:那還是多摘幾顆丟過去好了
角龍&辰巳:......(為敵人默哀中)


上一篇
[2018鐵人賽Day26]C#初學攻略心法-魔法儲存書卡(介面Interface)
下一篇
[2018鐵人賽Day28]C#初學攻略心法-卡片抽換QR Code
系列文
轉職初新者系列-C#初學攻略心法30

尚未有邦友留言

立即登入留言