最近用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. 【WebSocket】WebSocket介绍

    1.背景 在WebSocket出现之前客户端向服务器发出请求是通过http协议实现的,而http协议有个特点是通行请求只能由客户端发起,然后服务端响应查询结果,HTTP 协议没法让服务器主动向客户端推 ...

  2. dedecms安装操作-重安装-开启GD库

    wamp5_1.7.4 打开:http://localhost/install/安装 (输入:域名/install,回车跳转到安装界面,勾选“我已经阅读并同意此协议”,然后点击“继续按钮”.) 重安装 ...

  3. iis7设置ftp

    目前是所有网站一个域下.ftp登录后可看到所有网站,目前想ftp一个网站,查看了下服务器,貌似只有serv-u这么个东西,还不能再创建第二个域.不得其解.百度发现两篇文章正好: http://blog ...

  4. ORA-00923: FROM keyword not found where expected(单双引号)

    1.前提 在学习oracel的过程中遇到的一个关于单双引号的问题 备注一下 2.学习过程中创建表语句是这样的 create table DEPT_DML --部门表( DEPT_NO NUMBER(8 ...

  5. Android Button常用法

    常用属性: <Button android:id="@+id/btn_1" android:layout_width="match_parent" and ...

  6. 计算机网络(HTTP)之客户识别:cookie机制

    什么是cookie? 承载用户相关信息的HTTP首部 cookie的工作原理 cookie的缺陷 一.什么是cookie? cookie是由服务器生成,发送给USER-Agent(一般是浏览器),(服 ...

  7. 使用Docker+Jenkins自动构建部署

    环境 Windows 10 Docker Version 18.06.1-ce-win73 (19507) 运行jenkins 运行jenkins 容器 docker run -d --name ln ...

  8. linux路由表

    Linux 内核的路由表通过 route 命令查看 Linux 内核的路由表: [root@VM_139_74_centos ~]# routeKernel IP routing tableDesti ...

  9. SQLServer2012基于扩展事件的阻塞监控

    一.前言 SQL阻塞Block是事务联机系统OLTP的产物.由于锁导致的资源等待,事务执行时间过长,直接影响业务:了解阻塞,发现阻塞,已作为DBA日常维护的重中之重. 通过dmv可以发现当前正在阻塞的 ...

  10. P1972 [SDOI2009]HH的项链

    洛谷的分块练习题 看到讨论中说分块莫队被卡就写了树状数组...(但感觉做法和莫队的思想有点像?) #include<bits/stdc++.h> using namespace std; ...