最近工作之余在做一个百度歌曲搜索播放的小程序,需要显示歌曲列表的功能。在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控件中自定义控件的使用相关推荐

  1. 在DataGridView控件中加入ComboBox下拉列表框的实现

    原文 http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.html 虽然在Visual Studio中 DataGridView控件的 ...

  2. C# 选中 DataGridView 控件中的行时显示不同的颜色

    可以利用 DataGridView 控件的 SelectionMode.ReadOnly 和 SelectionBackColor 属性实现当选中DataGridView控件中的行时显示不同的颜色. ...

  3. DataGridView 控件中至少有一列没有单元格模板的解决

    当程序动态为DataGridView添加一列时如果这样写: DataGridViewColumn col = new DataGridViewColumn (); col.Name = "c ...

  4. 获取 Windows 窗体 DataGridView 控件中选定的单元格、行和列

    获取 DataGridView 控件中选中的单元格 使用 SelectedCells 属性. 注意 使用 AreAllCellsSelected 方法可避免显示可能具有大量数据的单元格. Visual ...

  5. 在DataGridView控件中一次显示出多个圆饼图的原始程序代码

    之前我们曾经提到过,您可以在Windows Form窗体上的一个DataGridView控件中一次显示出多个圆饼图(或其它形式的统计图表)以便能够一次检视多个群组数据的比例情况(如图表1所示).当时并 ...

  6. Visual C# 2005 - 如何于DataGridView控件中以跨数据行方式显示数据

    <?XML:NAMESPACE PREFIX = O /> 图表1 一般来说,每一个字段的内容会单独显示于DataGridView控件的一个数据行中.问题是,某些字段拥有大量文字数据,我是 ...

  7. DataGridView 控件中DataBind( )方法不能使用的情况的解决方案

    DataGridView 控件中DataBind( )方法不能使用的情况的解决方案 参考文章: (1)DataGridView 控件中DataBind( )方法不能使用的情况的解决方案 (2)http ...

  8. C#WinForm开发笔记——基本控件(二)

    C#学习笔记--WinForm开发 一.控件 1.WebBrowser 1>属性 2.ComboBox 1>属性 2>事件 3.ListBox 1>属性 2>事件 4.P ...

  9. 如何:从 Windows 窗体 DataGridView 控件中移除自动生成的列

    如果将 DataGridView 控件设置为根据其数据源中的数据自动生成列,则可以选择忽略某些列.可以通过调用 Columns 集合的 Remove 方法进行此操作.或者,也可通过将 Visible ...

最新文章

  1. python足球联赛赛程_python爬取足球比赛赛程笔记
  2. 参数方程求二阶偏导_偏微分方程
  3. python爬虫之多线程、多进程+代码示例
  4. 家用计算机配置,家用计算机怎么配置?
  5. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨2.56%
  6. PixelShuffler原理
  7. Atitit.每周末总结 于每周一计划日程表 流程表 v8 Ver history V8 add stock chk -------------import Stock chk.. 上周遗漏日
  8. Logistic映射在图像加密中的应用
  9. python将文本文件加密后输出_【Python】python文件或文本加密(4种方法)
  10. html5 mediarecorder,用浏览器轻松录制音频、视频—— MediaRecorder API
  11. 点云纹理映射 matlab,一种点云模型纹理映射方法与系统与流程
  12. 如何在Vue.js和ElementUI框架中获取Collapse组件最后选中的值
  13. 05——去哪儿(旅游网站首页开发)
  14. 用Python实现手机抓包,获取当当图书差评数据!
  15. 奇特的一生 柳比歇夫坚持56年的“时间统计法” - 读后感
  16. stm32f0 大小端_STM32F0系列Cortex-M0原理与实践
  17. iView中Table组件通过render属性渲染自定义组件
  18. java游戏 暴雨梨花,《梦幻西游》新足迹暴雨梨花和踩浪花游戏效果
  19. bulk es 删除_ES 批量操作 bulk
  20. CpG ODN丨艾美捷ODN 1982 (synthetic)参数说明

热门文章

  1. boost::fusion::unused_type用法的测试程序
  2. GDCM:模板空白图片的测试程序
  3. ITK:应用SIN图像过滤器
  4. ITK:使用连通性细分具有相似统计信息的像素
  5. C++ 源代码到可执行代码的详细过程 ?
  6. C++中int id[sizeof(unsigned long)]的语句,正确吗?
  7. QT的QStackedLayout类的使用
  8. QT的QMultiSampleAntiAliasing类的使用
  9. C++字符串类型转化
  10. java 异常 规范_java 异常规范