最近用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. linux服务器上,yum、rpm、源码编译安装及卸载

    源码的编译安装及卸载 源码安装三部曲 1.生成makefile编译文件./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文件常用的参数: --prefi ...

  2. Activity之间的跳转和数据传输

    1.显式跳转 protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceSt ...

  3. redis3.2.10单实例安装测试

    redis3.2.10单实例安装测试 主要是实际使用环境中使用,为了方便快速部署,特意记录如下: # root用户 yum -y install make gcc-c++ cmake bison-de ...

  4. 标签传播算法(Label Propagation Algorithm, LPA)初探

    0. 社区划分简介 0x1:非重叠社区划分方法 在一个网络里面,每一个样本只能是属于一个社区的,那么这样的问题就称为非重叠社区划分. 在非重叠社区划分算法里面,有很多的方法: 1. 基于模块度优化的社 ...

  5. npm install 时出现的 EACCES: permission denied 错误的可能有效的解决方案

    最近我开始接触手机 app 的编写,公司用到了 Nativescript.当我下载了公司的项目后,在配置时出现了不少的问题,其中出现概率最高的就是 EACCES: permission denied ...

  6. Java虚拟机—Java8内存模型(整理版)

    1.概述 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要手动释放内存,不容易出现内存泄露和内存溢出问题.一旦出现内存泄露和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,排查错误 ...

  7. ioctl函数

    一.函数原型 #include <unistd.h> int ioctl(int fd, int request, .../* void *arg */); 二.和网络相关的请求(requ ...

  8. Python——爬取人口迁徙数据(以腾讯迁徙为例)

    说明: 1.迁徙量是腾讯修改后的数值,无法确认真实性. 2.代码运行期间,腾讯迁徙未设置IP屏蔽和浏览器检测,因此下段代码仅能保证发布近期有效. 3.代码功能:爬取指定一天的四十(此四十是根据自己的城 ...

  9. git怎样删除未监视的文件untracked files

    # 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git clean -fd # 连 gitignore 的untrack 文件/目录也 ...

  10. python 文本比对

    # -*- coding:utf-8 -*- import difflib import sys def readfile(filename): try: fileHandle = open(file ...