iT邦幫忙

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

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

[2018鐵人賽Day22]C#初學攻略心法-黑暗魔書(Access)的閱覽模式(DataGridView)

喂喂,碼農妳該兌現了吧,快幫我把蛟進階!
蛟:支吼!(雙手呈現出毒球泡怒吼著)
碼農:好...好啦...蛟兄火氣別這麼大啦...

碼農畫了個複雜的陣法,並取出一本封面寫著塵封時辰的書籍
在書開啟後每往後翻一頁,光芒就越盛
此書就像無底洞一樣,翻過的頁數即消失到了第一千頁時停了下來

忽然間,蛟的身軀如同石化的樣子
劈啪,劈啪聲如雷聲響起
風雷交加,突然一個影子耀起
降下一條蛇,呃...是龍...
龍:吼~

不錯不錯,沒想到這個碼農還有點能耐
碼農:嘿嘿,我還不賴吧,想不想要再一次進階啊?
當然好啊,那還不快點
這當然不是免費的啦!

呃...龍,肚子餓了吧?
那把他吃了塞塞牙縫吧,辰巳去把碼農給我架起來!

碼農:呃...大神饒命啊,我的要求真的不難啦,我只是想要知道閱覽模式(DataGridView)簡單的使用而已嗎...
好吧,龍等等再吃,等他幫你進階完再吃吧

眾人:......

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

Step1.
首先,可以開啟Day21的方案
看到SelectBtn_Click的Function內容

DataTable DataTable = new DataTable();
DataTable.Columns.Add("代碼");
DataTable.Columns.Add("數值一");
DataTable.Columns.Add("數值二");

for (int i = 0; i < DataSetValue.Tables[0].Rows.Count; i++)
{
   DataTable.Rows.Add(new string[] { DataSetValue.Tables[0].Rows[i]["id"].ToString(),
   				     DataSetValue.Tables[0].Rows[i]["Value1"].ToString(),
   				     DataSetValue.Tables[0].Rows[i]["Value2"].ToString()
				   });
}

dataGridView1.DataSource = DataTable;

//自動調整寬度
dataGridView1.AutoResizeColumns();

https://ithelp.ithome.com.tw/upload/images/20180110/20091333kSZ4qclFv3.jpg

Step2.
可以看到我這邊new了一個DataTable建立新的資料表格
接著我加入我所要的資料欄位DataTable.Columns.Add("")
然後塞入對應的資料DataTable.Rows.Add

Step3.
處理完前面後,可以把製作好的DataTable填入DataGridView裡
dataGridView1.DataSource = DataTable;
(DataGridView的資料來源)

並自動調整各行寬度
dataGridView1.AutoResizeColumns();

Step4.
這樣就完成了一份DataGridView了
那假如我們要把代碼欄位隱藏呢?
Visible:取得或設定值,這個值指出是否顯示控制項及其所有子控制項
dataGridView1.Columns["代碼"].Visible = false;

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

[Step by Step簡易實戰]
這次我們要做的是,點擊DataGridView把代碼的值傳到指定的TextBox

Step1.
先在UI介面,多拉1個Label跟1個TextBox
並把TextBox取名為DataGridViewIDTextBox

https://ithelp.ithome.com.tw/upload/images/20180110/20091333LaR2mAUXE7.jpg

Step2.
點擊DataGridView,並在事件CellClick點擊兩下,進入撰寫Code畫面

https://ithelp.ithome.com.tw/upload/images/20180110/20091333Gb2tc1tFoI.jpg

Step3.
DataGridView.CurrentRow:取得包含目前儲存格的資料列
DataGridViewRow.Cells:取得填入資料列的儲存格集合

填入以下Code,取得代碼值,並填入DataGridViewIDTextBox內

//取得指定的欄位值
string dataGridViewValue = dataGridView1.CurrentRow.Cells["代碼"].Value.ToString();

//將取道的值填入DataGridViewIDTextBox內
DataGridViewIDTextBox.Text = dataGridViewValue;

https://ithelp.ithome.com.tw/upload/images/20180110/200913334TEHEXJ0i1.jpg

Step4.
按下F5執行程式,測試看看是否功能正確吧

https://ithelp.ithome.com.tw/upload/images/20180110/20091333CdWY5HmeQ8.jpg

參考資料:
DataGridView.CurrentRow 屬性
https://msdn.microsoft.com/zh-tw/library/system.windows.forms.datagridview.currentrow(v=vs.110).aspx

DataGridViewRow.Cells 屬性
https://msdn.microsoft.com/zh-tw/library/system.windows.forms.datagridviewrow.cells(v=vs.110).aspx


上一篇
[2018鐵人賽Day21]C#初學攻略心法-黑暗魔書(Access)的精神刪除&精神抹除
下一篇
[2018鐵人賽Day23]C#初學攻略心法-組態檔設定值(APP.config)的更新方法(上篇)
系列文
轉職初新者系列-C#初學攻略心法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言