[开发笔记]-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; }}
[开发笔记]-DataGridView控件中自定义控件的使用相关推荐
- 在DataGridView控件中加入ComboBox下拉列表框的实现
原文 http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.html 虽然在Visual Studio中 DataGridView控件的 ...
- C# 选中 DataGridView 控件中的行时显示不同的颜色
可以利用 DataGridView 控件的 SelectionMode.ReadOnly 和 SelectionBackColor 属性实现当选中DataGridView控件中的行时显示不同的颜色. ...
- DataGridView 控件中至少有一列没有单元格模板的解决
当程序动态为DataGridView添加一列时如果这样写: DataGridViewColumn col = new DataGridViewColumn (); col.Name = "c ...
- 获取 Windows 窗体 DataGridView 控件中选定的单元格、行和列
获取 DataGridView 控件中选中的单元格 使用 SelectedCells 属性. 注意 使用 AreAllCellsSelected 方法可避免显示可能具有大量数据的单元格. Visual ...
- 在DataGridView控件中一次显示出多个圆饼图的原始程序代码
之前我们曾经提到过,您可以在Windows Form窗体上的一个DataGridView控件中一次显示出多个圆饼图(或其它形式的统计图表)以便能够一次检视多个群组数据的比例情况(如图表1所示).当时并 ...
- Visual C# 2005 - 如何于DataGridView控件中以跨数据行方式显示数据
<?XML:NAMESPACE PREFIX = O /> 图表1 一般来说,每一个字段的内容会单独显示于DataGridView控件的一个数据行中.问题是,某些字段拥有大量文字数据,我是 ...
- DataGridView 控件中DataBind( )方法不能使用的情况的解决方案
DataGridView 控件中DataBind( )方法不能使用的情况的解决方案 参考文章: (1)DataGridView 控件中DataBind( )方法不能使用的情况的解决方案 (2)http ...
- C#WinForm开发笔记——基本控件(二)
C#学习笔记--WinForm开发 一.控件 1.WebBrowser 1>属性 2.ComboBox 1>属性 2>事件 3.ListBox 1>属性 2>事件 4.P ...
- 如何:从 Windows 窗体 DataGridView 控件中移除自动生成的列
如果将 DataGridView 控件设置为根据其数据源中的数据自动生成列,则可以选择忽略某些列.可以通过调用 Columns 集合的 Remove 方法进行此操作.或者,也可通过将 Visible ...
最新文章
- python足球联赛赛程_python爬取足球比赛赛程笔记
- 参数方程求二阶偏导_偏微分方程
- python爬虫之多线程、多进程+代码示例
- 家用计算机配置,家用计算机怎么配置?
- TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨2.56%
- PixelShuffler原理
- Atitit.每周末总结 于每周一计划日程表 流程表 v8 Ver history V8 add stock chk -------------import Stock chk.. 上周遗漏日
- Logistic映射在图像加密中的应用
- python将文本文件加密后输出_【Python】python文件或文本加密(4种方法)
- html5 mediarecorder,用浏览器轻松录制音频、视频—— MediaRecorder API
- 点云纹理映射 matlab,一种点云模型纹理映射方法与系统与流程
- 如何在Vue.js和ElementUI框架中获取Collapse组件最后选中的值
- 05——去哪儿(旅游网站首页开发)
- 用Python实现手机抓包,获取当当图书差评数据!
- 奇特的一生 柳比歇夫坚持56年的“时间统计法” - 读后感
- stm32f0 大小端_STM32F0系列Cortex-M0原理与实践
- iView中Table组件通过render属性渲染自定义组件
- java游戏 暴雨梨花,《梦幻西游》新足迹暴雨梨花和踩浪花游戏效果
- bulk es 删除_ES 批量操作 bulk
- CpG ODN丨艾美捷ODN 1982 (synthetic)参数说明
热门文章
- boost::fusion::unused_type用法的测试程序
- GDCM:模板空白图片的测试程序
- ITK:应用SIN图像过滤器
- ITK:使用连通性细分具有相似统计信息的像素
- C++ 源代码到可执行代码的详细过程 ?
- C++中int id[sizeof(unsigned long)]的语句,正确吗?
- QT的QStackedLayout类的使用
- QT的QMultiSampleAntiAliasing类的使用
- C++字符串类型转化
- java 异常 规范_java 异常规范