用来练手还是不错的,分享大家看一下,还是一些新颖点的 !哈哈
就是自定义datagridview,方便每个功能部分调用!简单!再次重申!!!后面源码会送上!
首先看一下登录,上图吧!
只有超级管理员跟管理员
接下来看一下主界面
更改datagridview数据列
datagridview自定义类
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
using system.data.sqlclient;
using system.reflection;
using system.drawing;
namespace common
{
public class com
{
public void thread() {
}
/// <summary>
/// datagridview的样式
/// </summary>
/// <param name="gridview"></param>
public void exitgridview(datagridview gridview)
{
gridview.allowdrop = false ;
gridview.allowusertoaddrows = false ;
gridview.allowusertodeleterows = false ;
gridview.allowusertoordercolumns = false ;
gridview.allowusertoresizecolumns = false ;
}
/// <summary>
/// 生成一列有功能的按钮
/// </summary>
/// <param name="name"></param>
/// <param name="gridview"></param>
public void addcolumn( string name, datagridview gridview)
{
//添加修改按钮
datagridviewbuttoncolumn c = new datagridviewbuttoncolumn();
//设置列标题单元格的名称
c.text = name;
//单元格的背景色
c.defaultcellstyle.backcolor = color.lightgray;
//单元格选定时的背景色
c.defaultcellstyle.selectionbackcolor = color.darkgray;
//单元格的默认文本
c.usecolumntextforbuttonvalue = true ;
//单元格宽
c.width = 60;
//添加新的一列对象
//选中时背景色为灰色
c.defaultcellstyle.selectionbackcolor = color.lightgray;
c.defaultcellstyle.selectionforecolor = color.black;
c.fillweight = 50;
gridview.columns.add(c);
}
/// <summary>
/// 自动生成columns 没有修改和删除
/// </summary>
/// <param name="headertext"></param>
/// <param name="datapropertynames"></param>
/// <param name="grdiview"></param>
public void autocolumn( string headertext, string datapropertynames, datagridview grdiview)
{
//去掉自动生成的列
grdiview.autogeneratecolumns = false ;
grdiview.rowheadersdefaultcellstyle.selectionbackcolor = color.darkgray;
//生成行标题标号的方法
grdiview.datasource = system.drawing.imaging.imagecodecinfo.getimagedecoders();
// 禁止用户改变datagridview1的所有列的列宽
grdiview.allowusertoresizecolumns = false ;
//禁止用户改变datagridview1の所有行的行高
grdiview.allowusertoresizerows = false ;
//选择整行
grdiview.selectionmode = datagridviewselectionmode.fullrowselect;
grdiview.allowdrop = false ;
//不可以添加行
grdiview.allowusertoaddrows = false ;
//不可以删除行
grdiview.allowusertodeleterows = false ;
//不可以手动对列重新定位
grdiview.allowusertoordercolumns = false ;
//不可以调整列的大小
grdiview.allowusertoresizecolumns = false ;
//不可以调整行的大小
grdiview.allowusertoresizerows = false ;
//行标题行的宽度
grdiview.rowheaderswidth = 32;
//不能多选
grdiview.multiselect = false ;
//获取标题样式
grdiview.columnheadersdefaultcellstyle.alignment = datagridviewcontentalignment.middlecenter;
string [] arrayheadertext = headertext.split( ',' );
string [] arraydatapropertynames = datapropertynames.split( ',' );
for ( int i = 0; i < arrayheadertext.length; i++)
{
datagridviewtextboxcolumn d = new datagridviewtextboxcolumn();
//绑定数据库列名称
d.datapropertyname = arraydatapropertynames[i];
//设置列标题的名称
d.headertext = arrayheadertext[i];
//单元格选定时的背景色
d.defaultcellstyle.selectionbackcolor = color.gainsboro;
d.defaultcellstyle.selectionforecolor = color.black;
//单元格的内容居中
d.defaultcellstyle.alignment = datagridviewcontentalignment.middlecenter;
grdiview.columns.add(d);
}
grdiview.datasource = null ;
}
/// <summary>
/// 找到刚刚添加成功的数据行s
/// </summary>
/// <param name="a"></param>
/// <param name="gridview"></param>
public void autofindrow( string a, datagridview gridview)
{
//获取datagridview中的总行数
int rows = gridview.rowcount;
//找到刚刚添加成功的数据行
for ( int i = 0; i < rows; i++)
{
string a = gridview.rows[i].cells[0].value.tostring();
if (a == a)
{
//选中整行
gridview.rows[i].selected = true ;
//垂直滚动条,滚动到当前行索引位置
gridview.firstdisplayedscrollingrowindex = i;
}
else
{
//清楚整行选中
gridview.rows[i].selected = false ;
}
}
}
/// <summary>
/// 找到刚刚添加成功的数据行
/// </summary>
/// <param name="a"></param>
/// <param name="gridview"></param>
public void autofindrow( int a, datagridview gridview)
{
//获取datagridview中的总行数
int rows = gridview.rowcount;
//找到刚刚添加成功的数据行
for ( int i = 0; i < rows; i++)
{
int a = ( int )gridview.rows[i].cells[0].value;
if (a == a)
{
//选中整行
gridview.rows[i].selected = true ;
//垂直滚动条,滚动到当前行索引位置
gridview.firstdisplayedscrollingrowindex = i;
}
else
{
//清楚整行选中
gridview.rows[i].selected = false ;
}
}
}
}
}
挺简单的 一下是图书管理加载的数据方法
private void bookinfomanager_ui_load( object sender, eventargs e)
{
#region datagridview1绑定
//需要添加列的列标题字符串
string arraysheadertext = @"图书编号,图书名称,登记时间,图书类型,作者,拼音码,翻译,语言,页数,价格,印刷版面,存放位置,isbs码,版本,描述" ;
//需要绑定数据库列名称的字符串
string arraysname = @"bookid,bookname,timein,booktypename,author,pinyincode,translator,language,booknumber,price,layout,address,isbs,versions,bookremark" ;
//自动生成columns
autocoumns.autocolumn(arraysheadertext, arraysname, datagridview1);
datagridview1.datasource = bookinfo_bll.selectbookinfo1().tables[0];
autocoumns.addcolumn( "修改" , datagridview1);
autocoumns.addcolumn( "删除" , datagridview1);
//datagridview1数据集绑定
this .datagridview1.datasource = bookinfo_bll.selectbookinfo1().tables[0];
//窗体加载时默认隐藏的列
this .datagridview1.columns[14].visible = false ;
this .datagridview1.columns[13].visible = false ;
this .datagridview1.columns[12].visible = false ;
this .datagridview1.columns[11].visible = false ;
this .datagridview1.columns[10].visible = false ;
#endregion
#region 下拉框绑定
datagridviewcolumncollection columns = datagridview1.columns;
for ( int i = 0; i < columns.count - 2; i++)
{
combobox1.items.add(columns[i].headertext);
}
combobox1.items.insert(0, "全部" );
combobox1.selectedindex = 0;
#endregion
#region 树状图的绑定
treeviewband();
#endregion
#region dgvhostory绑定
string header1 = @"图书编号,图书名称,读者编号,读者名称,借出时间,书应归还时间,实际归还时间,应付罚金,续借次数,借还描述" ;
string propertynames1 = @"bookid,bookname,readerid,readername,borrowtime,returntime,factreturntime,fine,renewcount,borrowremark" ;
//自动生成columns
autocoumns.autocolumn(header1, propertynames1, dgvhostory);
#endregion
}
源码下载: csharplibrary.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
dy("nrwz");