dataGridView笔记
最近用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笔记的更多相关文章
- C#控件DataGridView笔记
1.列排序问题,点击列标题行时列会自动排序导致表格混乱.解决办法: 2.改变行高 改变列头行高 ColumnHeadersHeaderSize属性设为 EnableResizing ColumnHea ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- 研二下学期做的第一个项目(主要关于datagridview的一些笔记)
首先是行标题列rowheader dataGridView1.TopLeftHeaderCell.Value = "details"; ______________________ ...
- 学习笔记 DataGridView数据导出为Excel
DataGridView数据导出为Excel 怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...
- DataGridView控件-学习笔记总结
1.GridColor属性用来获取或设置网格线的颜色 dataGridView1.GridColor=Color.Blue; 2.设置宽度 .高度 dataGridView1.Columns[].Wi ...
- easyUi 学习笔记 (二 ) 使用tabs 里datagridview 发送ajax请求 不访问后台的问题
这个BUG 我花了一个半小时, 还是看不出哪里的问题, 于是就百度到这么一段话,我需要记住 <================================================= ...
- WinForm笔记1:TextBox编辑时和DataGridView 单元格编辑时 的事件及其顺序
TextBox 编辑框 When you change the focus by using the mouse or by calling the Focus method, focus event ...
- [开发笔记]-DataGridView控件中自定义控件的使用
最近工作之余在做一个百度歌曲搜索播放的小程序,需要显示歌曲列表的功能.在winform中采用DataGirdView来实现. 很久不写winform程序了,有些控件的用法也有些显得生疏了,特记录一下. ...
- 让DataGridView显示行号
http://www.cnblogs.com/JuneZhang/archive/2011/11/21/2257630.html 为了表示行号,我们可以在DataGridView的RowP ...
随机推荐
- 【js】前端 js/jquery 常用代码和实践
1.获取某天后几天的日期 //d为传入的日期 days为d后面的几天function getAfterDate(d,days){ var dd = new Date(d); dd.setDate(dd ...
- 简单记录一次getshell到进服务器的过程
通过st2命令执行上次木马进行getshell 查看whoami,发现权限是administrator,直接net user xxx xxx123.. /add,发现拒绝访问 通过命令tasklist ...
- jQuery 为动态添加的元素绑定事件
在使用jquery的方式为元素绑定事件时,我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件.像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是 ...
- Matlab安装完成后,出现错误licensing error:-8523的解决方法
Matlab2018安装成功后,打开出现licensing error:-8523解决方法 https://blog.csdn.net/qq_41634276/article/details/8000 ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- 转载---JavaScript执行机制
很好的一篇文章,原地址 JavaScript执行机制 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我. 不 ...
- ArcGIS——2015年中国各省GDP总量分级图(6等级)
- P1972 [SDOI2009]HH的项链
洛谷的分块练习题 看到讨论中说分块莫队被卡就写了树状数组...(但感觉做法和莫队的思想有点像?) #include<bits/stdc++.h> using namespace std; ...
- 【C#第一天】数据相关
程序的基本任务:对数据进行处理. 数据分为常量和变量. 变量本质上是内存的空间,用来存储信息. 数据类型:本质上是数据的存储方式及其能参与运算的抽象. 数据类型分两大类:值类型(Value Type) ...
- 转:为什么要有Spring?
Java后端技术https://mp.weixin.qq.com/s?__biz=MzI1NDQ3MjQxNA==&mid=2247484822&idx=1&sn=6fbee2 ...