最近用dataGridView比较多,先把代码备份在这里,有时间系统总结一下

using FindId.DAL;
using FindId.Model;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace FindId
{ public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
//bin = new delegateBin(DataBin);
}
public static bool IsClosed = false;
private void Form2_Load(object sender, EventArgs e)
{
CreateView();
}
public void Test()
{
//bin = new delegateBin(DataBin);
}
public static delegateBin bin;
public void DataBin()
{
DAL_Goods dal = new DAL_Goods();
string findGroupID = tbFindGroupID.Text.Trim();
List<Model_Goods> dlist = (List<Model_Goods>)dal.ListWhere(findGroupID);
dataGridView1.Refresh();
dataGridView1.DataSource = dlist;
} private void CreateView()
{
dataGridView1.AutoGenerateColumns = false;
DataGridViewLinkColumn linkID = new DataGridViewLinkColumn();
linkID.Name = "linkID";
linkID.HeaderText = "id";
linkID.Width = 1;
linkID.DataPropertyName = "ID";
dataGridView1.Columns.Add(linkID); //DataGridViewTextBoxColumn dgtbGroupID = new DataGridViewTextBoxColumn();
//dgtbGroupID.DataPropertyName = "GroupID";
//dgtbGroupID.Name = "tbGroupID";
//dgtbGroupID.HeaderText = "产品ID";
//dataGridView1.Columns.Add(dgtbGroupID); DataGridViewTextBoxColumn dgtbGoodsTitle = new DataGridViewTextBoxColumn();
dgtbGoodsTitle.DataPropertyName = "GoodsTitle";
dgtbGoodsTitle.Name = "dgtbGoodsTitle";
dgtbGoodsTitle.HeaderText = "产品名称";
dgtbGoodsTitle.Width = 200;
dataGridView1.Columns.Add(dgtbGoodsTitle); DataGridViewTextBoxColumn dgtbAttributeTitle = new DataGridViewTextBoxColumn();
dgtbAttributeTitle.DataPropertyName = "AttributeTitle";
//dgtbAttributeTitle.CellTemplate
dgtbAttributeTitle.Name = "dgtbAttributeTitle";
dgtbAttributeTitle.HeaderText = "属性名称";
dataGridView1.Columns.Add(dgtbAttributeTitle); DataGridViewTextBoxColumn dgtbAttribute = new DataGridViewTextBoxColumn();
dgtbAttribute.DataPropertyName = "Attribute";
dgtbAttribute.Name = "dgtbAttribute";
dgtbAttribute.HeaderText = "内容";
dataGridView1.Columns.Add(dgtbAttribute); DataGridViewLinkColumn linkDelete = new DataGridViewLinkColumn();
linkDelete.Text = "删除";
linkDelete.Name = "linkDelete";
linkDelete.HeaderText = "删除";
linkDelete.Width = 40;
linkDelete.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(linkDelete);
} private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
var Column = dataGridView1.Columns[e.ColumnIndex];
if (Column.Name == "linkDelete")
{
var cellId = dataGridView1.Rows[e.RowIndex].Cells[0];
string temp = cellId.EditedFormattedValue.ToString();
int id;
int.TryParse(temp, out id);
if (MessageBox.Show("确认删除?", "此删除不可恢复", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
new DAL_Goods().Delete(new Model_Goods() { ID = id });
DataBin();
}
}
else
{
//var cellSelected = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
var cellSelected = dataGridView1.Rows[e.RowIndex].Cells[3];
string txt = cellSelected.EditedFormattedValue.ToString();
MessageBox.Show(txt);
}
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
//更新
var cellSelected = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
string txt = cellSelected.EditedFormattedValue.ToString(); var cellId = dataGridView1.Rows[e.RowIndex].Cells[0];
string temp = cellId.EditedFormattedValue.ToString();
int id;
int.TryParse(temp, out id); DAL_Goods dal = new DAL_Goods();
Model_Goods model = new Model_Goods(); var ColumnsSelected = dataGridView1.Columns[e.ColumnIndex];
if (ColumnsSelected.Name == "dgtbGoodsTitle")
{
model.GoodsTitle = txt;
}
else if (ColumnsSelected.Name == "dgtbAttributeTitle")
{
model.AttributeTitle = txt;
}
else if (ColumnsSelected.Name == "dgtbAttribute")
{
model.Attribute = txt;
}
model.ID = id;
bool b = dal.UpdateAutoCreateSqlText(model);
//MessageBox.Show(string.Format("vale = {0} id = {1} is{2}",txt,id,b));
} private void btnSave_Click(object sender, EventArgs e)
{
Model_Goods model = new Model_Goods();
model.GroupID = tbGroupID.Text.Trim();
model.GoodsTitle = tbGoodsTitle.Text.Trim();
model.AttributeTitle = tbAttributeTitle.Text.Trim();
model.Attribute = tbAttribute.Text.Trim();
DAL_Goods dal = new DAL_Goods();
dal.AddNew(model);
DataBin(); }
private void btnFindGroupID_Click(object sender, EventArgs e)
{
DataBin();
} //======================================以下是试验代码 上边的是整理好的可用代码========================== private void NewMethod1()
{
//DataGridView控件用法(二):为每行记录最后加“编辑”-“删除”按钮列 - lllljz的专栏 - CSDN博客 https://blog.csdn.net/lllljz/article/details/7718201 ////为每行数据增加编辑列。
dataGridView1.AutoGenerateColumns = false; // //设定列不能自动作成
DataGridViewLinkColumn dlink = new DataGridViewLinkColumn();////创建一个DataGridViewLinkColumn列
dlink.Text = "编辑";//添加的这列的显示文字,即每行最后一列显示的文字。
dlink.Name = "linkEdit";
dlink.HeaderText = "编辑";//列的标题
dlink.DataPropertyName = "ID"; //dlink.UseColumnTextForLinkValue = true;//上面设置的dlink.Text文字在列中显示
dataGridView1.Columns.Add(dlink);//将创建的列添加到dataGridView1中 ////同上方法为每条记录创建“删除”超链接
DataGridViewLinkColumn dlink2 = new DataGridViewLinkColumn();
dlink2.Text = "删除";
dlink2.Name = "linkDelete";
dlink2.HeaderText = "删除";
dlink2.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dlink2); ////同上方法为每条记录创建“查看”超链接
DataGridViewButtonColumn btn1 = new DataGridViewButtonColumn();
btn1.Text = "查看";
btn1.Name = "linkView";
btn1.HeaderText = "查看";
btn1.UseColumnTextForButtonValue = true;
btn1.Width = 66;
dataGridView1.Columns.Add(btn1); //DataGridViewComboBoxColumn dCombo = new DataGridViewComboBoxColumn(); //dCombo.Items.Add("编号");
//dCombo.Items.Add("产品ID");
//dCombo.Items.Add("属性名");
//dCombo.Items.Add("属性");
//dCombo.Name = "dCombo";
////dcombo.DisplayIndex = 1; //该列显示的位置
////dCombo.HeaderText = "角色";
//dCombo.DataPropertyName = "GroupID";//绑定的列
//dCombo.DataSource = dlist;
//dCombo.DataPropertyName = "GroupID";//绑定的列 DataGridViewTextBoxColumn tb1 = new DataGridViewTextBoxColumn();
tb1.DataPropertyName = "GroupID";
tb1.Name = "产品ID";
dataGridView1.Columns.Add(tb1); DataGridViewTextBoxColumn tb2 = new DataGridViewTextBoxColumn();
tb2.DataPropertyName = "GoodsTitle";
tb2.Name = "产品名称";
tb2.Width = 500; dataGridView1.Columns.Add(tb2); //绑定数据库的值时使用以下属性
DAL_Goods dal = new DAL_Goods();
List<Model_Goods> dlist = (List<Model_Goods>)dal.ListWhere("124454445744"); //dataGridView1.
dataGridView1.DataSource = dlist;
} private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
//C# DataGridView添加右键菜单等技巧 --转 - 晔 - 博客园 https://www.cnblogs.com/liye/archive/2010/09/29/1838709.html
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= 0)
{
//若行已是选中状态就不再进行设置
if (dataGridView1.Rows[e.RowIndex].Selected == false)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[e.RowIndex].Selected = true;
}
//只选中一行时设置活动单元格
if (dataGridView1.SelectedRows.Count == 1)
{
dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
}
//弹出操作菜单
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
var cellId = dataGridView1.Rows[e.RowIndex].Cells[0];
string temp = cellId.EditedFormattedValue.ToString(); int.TryParse(temp, out id);
//MessageBox.Show(id.ToString()); }
}
int id;
private void 编辑ToolStripMenuItem_Click(object sender, EventArgs e)
{
//MessageBox.Show(id.ToString());
FormEdit fedit = new FormEdit(id);
fedit.ShowDialog(); } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("确认删除?", "此删除不可恢复", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
new DAL_Goods().Delete(new Model_Goods() { ID = id });
DataBin();
}
} private void btnAddNew_Click(object sender, EventArgs e)
{
FormAddNew frAdd = new FormAddNew();
frAdd.ShowDialog();
} }
}

  

dataGridView笔记的更多相关文章

  1. C#控件DataGridView笔记

    1.列排序问题,点击列标题行时列会自动排序导致表格混乱.解决办法: 2.改变行高 改变列头行高 ColumnHeadersHeaderSize属性设为 EnableResizing ColumnHea ...

  2. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  3. 研二下学期做的第一个项目(主要关于datagridview的一些笔记)

    首先是行标题列rowheader dataGridView1.TopLeftHeaderCell.Value = "details"; ______________________ ...

  4. 学习笔记 DataGridView数据导出为Excel

    DataGridView数据导出为Excel   怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...

  5. DataGridView控件-学习笔记总结

    1.GridColor属性用来获取或设置网格线的颜色 dataGridView1.GridColor=Color.Blue; 2.设置宽度 .高度 dataGridView1.Columns[].Wi ...

  6. easyUi 学习笔记 (二 ) 使用tabs 里datagridview 发送ajax请求 不访问后台的问题

    这个BUG 我花了一个半小时, 还是看不出哪里的问题,  于是就百度到这么一段话,我需要记住 <================================================= ...

  7. WinForm笔记1:TextBox编辑时和DataGridView 单元格编辑时 的事件及其顺序

    TextBox 编辑框 When you change the focus by using the mouse or by calling the Focus method, focus event ...

  8. [开发笔记]-DataGridView控件中自定义控件的使用

    最近工作之余在做一个百度歌曲搜索播放的小程序,需要显示歌曲列表的功能.在winform中采用DataGirdView来实现. 很久不写winform程序了,有些控件的用法也有些显得生疏了,特记录一下. ...

  9. 让DataGridView显示行号

          http://www.cnblogs.com/JuneZhang/archive/2011/11/21/2257630.html 为了表示行号,我们可以在DataGridView的RowP ...

随机推荐

  1. 洛谷 P2325 [SCOI2005]王室联邦

    简化版题意: 一个国家由\(n\)个城市组成一颗树,要将其划分为\(n\)个省 每个城市大小为\([B,3B]\),每个省有一个省会(不一定要在省内),使得每个省的所有城市到省会的路径上不能经过其他省 ...

  2. Java复习总结——继承

    访问权限 Java中有三个访问权限修饰符:private.protected以及public,如果不加访问修饰符,表示包级可见. 可以对类或类中的成员(字段以及方法)加上访问修饰符. 类可见表示其他类 ...

  3. [WC2006]水管局长(LCT)

    题目大意: 给定一张图,支持删边,求两点的路径中所有权值的最大值的最小值,貌似很绕的样子 由于有删边,不难想到\(LCT\),又因为\(LCT\)不支持维护图,而且只有删边操作,于是我们考虑时间回溯. ...

  4. 将字符串存储到注册表中,长度一定是 strlen(text) + 1

    参考:https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-value-types 将字符串存储到注册表中,长度参数一定要 ...

  5. python全栈开发中级班全程笔记(第二模块、第四章(三、re 正则表达式))

    python全栈开发笔记第二模块   第四章 :常用模块(第三部分) 一.正则表达式的作用与方法 正则表达式是什么呢?一个问题带来正则表达式的重要性和作用      有一个需求 : 从文件中读取所有联 ...

  6. sklearn_收入模型

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  7. DirectX11 With Windows SDK--00 目录

    前言 (更新于 2019/4/10) 从第一次接触DirectX 11到现在已经有将近两年的时间了.还记得前年暑假被要求学习DirectX 11,在用龙书的源码配置项目运行环境的时候都花了好几天的时间 ...

  8. 同一个tomcat部署多个项目导致启动失败

    内容描述在同一个tomcat部署多个打包成war包的项目导致启动失败,报错如下: 报错信息Error starting ApplicationContext. To display the condi ...

  9. linux 上安装图形界面

    linux 上安装 vncserver 后,图形界面里只有灰底和一个terminal 框, 解决方法: 修改 .vnc/xstartup为 unset SESSION_MANAGER # exec / ...

  10. 简单文本悬浮div提示效果

    <html> <head> <script src="jquery-1.9.1.min.js" type="text/javascript& ...