C#中DataGridView操作技巧
作者:shichen2014 发布时间:2023-05-03 20:37:30
本文实例讲述了C#中DataGridView操作技巧。分享给大家供大家参考。具体分析如下:
#region 操作DataGridView
/// <summary>
/// 初始化DataGridView属性
/// </summary>
/// <param name="dg">要处理的DataGridView</param>
/// <param name="allowUserToAddRows">允许用户添加行</param>
/// <param name="allowUserToDeleteRows">允许用户删除行</param>
/// <param name="rowHeadersVisible">是否显示包含行标题的列</param>
/// <param name="columnHeadersHeightSizeMode">列标头高度大小模式</param>
/// <param name="multiSelect">是否多选</param>
/// <param name="readOnly">是否只读</param>
/// <param name="rowHeadersWidth">列头宽度</param>
/// <param name="selectionMode">列选择模式</param>
public virtual void InitSetDataGridViewAttribute(DataGridView dg,
bool allowUserToAddRows,
bool allowUserToDeleteRows,
bool allowUserToResizeRows,
bool rowHeadersVisible,
DataGridViewColumnHeadersHeightSizeMode columnHeadersHeightSizeMode,
bool multiSelect,
bool readOnly,
int rowHeadersWidth,
DataGridViewSelectionMode selectionMode)
{
dg.AllowUserToAddRows = allowUserToAddRows;
dg.AllowUserToDeleteRows = allowUserToDeleteRows;
dg.AllowUserToResizeRows = allowUserToResizeRows;
dg.RowHeadersVisible = rowHeadersVisible;
dg.ColumnHeadersHeightSizeMode = columnHeadersHeightSizeMode;
dg.MultiSelect = multiSelect;
dg.ReadOnly = readOnly;
dg.RowHeadersWidth = rowHeadersWidth;
dg.SelectionMode = selectionMode;
dg.RowStateChanged += dg_RowStateChanged;
}
/// <summary>
/// 初始化DataGridView属性
/// </summary>
/// <param name="dg">要处理的DataGridView</param>
public virtual void InitSetDataGridViewAttribute(DataGridView dg)
{
InitSetDataGridViewAttribute(dg,
false,
false,
false,
true, DataGridViewColumnHeadersHeightSizeMode.AutoSize,
false,
true,
50,
DataGridViewSelectionMode.FullRowSelect);
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void dg_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
e.Row.HeaderCell.Value = (e.Row.Index + 1).ToString();
}
/// <summary>
/// DataGridView添加行
/// </summary>
/// <param name="dg">要处理的DataGridView</param>
/// <param name="dr">添加的列</param>
public void DataGridViewAddRows(DataGridView dg, DataGridViewRow dr)
{
dg.Rows.Add(dr);
}
/// <summary>
/// DataGridView行中添加列
/// </summary>
/// <param name="objs">要添加的对象</param>
/// <returns>列</returns>
public DataGridViewRow DataGridViewRowsAddCells(object[] objs)
{
DataGridViewRow row = new DataGridViewRow();
foreach (object obj in objs)
{
DataGridViewTextBoxCell tBoxCell = new DataGridViewTextBoxCell();
tBoxCell.Value = obj;
row.Cells.Add(tBoxCell);
}
return row;
}
/// <summary>
/// DataGridView添加行
/// </summary>
/// <param name="dg">要处理的DataGridView</param>
/// <param name="listObjecArray">添加的对象List</param>
public void DataGridViewAddRows(DataGridView dg, List<object[]> listObjecArray)
{
foreach (object[] objs in listObjecArray)
{
DataGridViewRow dr = DataGridViewRowsAddCells(objs);
DataGridViewAddRows(dg, dr);
}
}
/// <summary>
/// DataGridView添加行
/// </summary>
/// <param name="dg">要处理的DataGridView</param>
/// <param name="objs">添加的对象</param>
public void DataGridViewAddRows(DataGridView dg, object[] objs)
{
DataGridViewRow dr = DataGridViewRowsAddCells(objs);
DataGridViewAddRows(dg, dr);
}
/// <summary>
/// DataGridView列排序
/// </summary>
/// <param name="dg">要排序的DataGridView</param>
/// <param name="dataGridViewColumnIndex">列索引</param>
/// <param name="flag">0:升序排列 1:降序排列</param>
public void DataGridViewSort(DataGridView dg, int dataGridViewColumnIndex, int flag)
{
switch (flag)
{
case 0:
dg.Sort(dg.Columns[dataGridViewColumnIndex], ListSortDirection.Ascending);
break;
case 1:
dg.Sort(dg.Columns[dataGridViewColumnIndex], ListSortDirection.Descending);
break;
default:
break;
}
}
#endregion
希望本文所述对大家的C#程序设计有所帮助。
猜你喜欢
- 本文实例为大家分享了java实现银行家算法的具体代码,供大家参考,具体内容如下题目:初始时,Allocate[i,j]=0,表示初始时没有进
- 前言在日常的开发中StringBuilder大家肯定都有用过,甚至用的很多。毕竟大家都知道一个不成文的规范,当需要高频的大量的构建字符串的时
- 介绍Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一
- ArrayList底层实现是数组,访问元素效率高 (查询快,插入、修改、删除元素慢)与LinkedList相比,它效率高,但线程不安全。Ar
- 今天写一个小程序中使用到了全局快捷键,找到了我之前写的文章在c#中使用全局快捷键翻了一下,发现它是WinForm版本的,而我现在大部分写WP
- 采集器概貌,如下:最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息。网上的Ip纯真数据库,下载下来一
- 在游戏项目中我们常常看到商城的广告牌,几张广告图片循环滚动,类似跑马灯,现在我将讨论一种实现方法,并提供一个管理类,大家可以直接使用。实现原
- Spring Batch job任务只跑一次在一次实际使用spring batch的过程中,在定时任务中,第一次执行Job没有出现问题,然后
- 先给出网页地址:https://wall.alphacoders.com/featured.php?lang=Chinese主要步骤:利用J
- 本文实例为大家分享了Unity Shader实现描边OutLine效果的具体代码,供大家参考,具体内容如下Shader实现描边流程大致为:对
- Java中 * 主要有JDK和CGLIB两种方式。区别主要是jdk是代理接口,而cglib是代理类。优点:这种方式已经解决我们前面所有日记
- 本文实例为大家分享了C#实现窗体抖动的具体代码,供大家参考,具体内容如下原理:围绕中心点运动一圈方法一:通过线程实现需求:需要using S
- 结构化查询语言(SQL)是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,读取内容,内容更新和删除条目。SQL是所有可能会使用几乎
- Java中方法重写与重载的区别重 写重 载子类方法对父类方法的覆盖同一个类中同名方法的重载(同一类包括从父类继承的方法)方法名相同且参数个数
- 一、创建项目1.File->new->project;2.选择“Spring Initializr”,点击next;(jdk1.
- springboot扩展MVC自定义 config -> SpringMvcConfig.java下边就是扩展springMVC的模板
- ThreadLocal类,代表一个线程局部变量,通过把数据放在ThreadLocal中,可以让每个线程创建一个该变量的副本。也可以看成是线程
- 本文实例讲述了C#多线程学习之使用定时器进行多线程的自动管理。分享给大家供大家参考。具体分析如下:Timer类:设置一个定时器,定时执行用户
- 原理解析在开发当中,“断点续传”这种功能很实用和常见,听上去也是比较有“逼格”的感觉。所以通常我们都有兴趣去研究研究这种功能是如何实现的?
- 一、JPype简述1.JPype是什么?JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python