[开发笔记]-DataGridView控件中自定义控件的使用
生活随笔
收集整理的這篇文章主要介紹了
[开发笔记]-DataGridView控件中自定义控件的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近工作之余在做一個百度歌曲搜索播放的小程序,需要顯示歌曲列表的功能。在winform中采用DataGirdView來實現。
很久不寫winform程序了,有些控件的用法也有些顯得生疏了,特記錄一下。
先看一下測試程序的效果:
?
完整的程序代碼:
public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){List<Link> list = new List<Link>();list.Add(new Link { Uid = 1, Ulink = "http://www.baidu.com/" });list.Add(new Link { Uid = 2, Ulink = "http://www.cnblogs.com/babycool" });list.Add(new Link { Uid = 3, Ulink = "" }); //http://www.youku.com/list.Add(new Link { Uid = 4, Ulink = "http://www.xiaomi.com/" });DataGridViewCheckBoxColumn colum1 = new DataGridViewCheckBoxColumn();DataGridViewButtonColumn colum2 = new DataGridViewButtonColumn();DataGridViewTextBoxColumn colum3 = new DataGridViewTextBoxColumn();DataGridViewTextBoxColumn colum4 = new DataGridViewTextBoxColumn();//自定義列 CheckBox//name值或HeaderText值為標頭顯示的文字colum1.Name = "check";//自定義列 Buttoncolum2.Name = "butt";colum2.Text = "按鈕";//colum2.Tag = "Ulink";//colum2.DataPropertyName = "Ulink";//button列不綁定數據//設置顯示單元格的按鈕文本colum2.UseColumnTextForButtonValue = true;//調整列寬//colum2.Width = 60;//自定義列 TextBoxcolum3.Name = "link";colum3.DataPropertyName = "Ulink";//設置列不顯示colum3.Visible = false;dataGridView1.Columns.Add(colum1);dataGridView1.Columns.Add(colum2);dataGridView1.Columns.Add(colum3);dataGridView1.Columns.Add(colum4);colum4.Name = "id";colum4.DataPropertyName = "Uid";//設置單元格 只讀colum4.ReadOnly = true;//不自動生成列dataGridView1.AutoGenerateColumns = false;//單擊單元格選中整行dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;//自動跳轉列寬dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;//自動調整列寬 填充顯示//DisplayedCell /*通過設定AutoSizeColumnsMode或AutoSizeRowsMode屬性,列或行可以根據單元格的內容變更,自動調整,但是經常使用這種方法,運行速度就會低下。尤其當行或列數量比較多時,更為明顯。這時,可以替換AllCells而設定DisplayedCells,只對當前顯示單元格的內容自動調整,這樣就可以提高執行速度。*///自動調整行高dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;//調整列寬 在整個控件設置為自動跳轉列寬之后在單獨設置該列的寬度colum2.Width = 60;dataGridView1.DataSource = list;}private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e){//獲取點擊事件發生的列名Name為butt的控件if (dataGridView1.Columns[e.ColumnIndex].Name == "butt"){//考慮url中如果沒有值的情況 為“”object url = dataGridView1.Rows[e.RowIndex].Cells[2].Value;if (url != null && url.ToString() != ""){//string url = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();// MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString());//在ie瀏覽器中打開// System.Diagnostics.Process.Start("iexplore.exe",url);//指定在ie瀏覽器中打開//在默認瀏覽器中打開 System.Diagnostics.Process.Start(url.ToString());}else{//網址中如果為空的情況MessageBox.Show("為空");}}}private void button1_Click(object sender, EventArgs e){List<int> idlist = new List<int>();for (int i = 0; i < dataGridView1.Rows.Count; i++){if (dataGridView1["check", i].Value != null){if ((bool)dataGridView1["check", i].Value == true){//獲取所有checkbox選中項的Uid值idlist.Add(Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value.ToString()));}}}//遍歷for (int i = 0; i < idlist.Count; i++){MessageBox.Show(idlist[i].ToString());}}}public class Link{public int Uid { get; set; }public string Ulink { get; set; }} 本文轉自 酷小孩 博客園博客,原文鏈接:?http://www.cnblogs.com/babycool/p/3552864.html?,如需轉載請自行聯系原作者總結
以上是生活随笔為你收集整理的[开发笔记]-DataGridView控件中自定义控件的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进入Linux救援(rescue)模式的
- 下一篇: Android笔记:onSaveInst