// winform中dataGridView单元格在数据绑定后,数据类型更改困难,只能迂回实现.有时候需要将数字变换为不同的文字描述,就会出现int32到string类型转换的异常,借助CellFormatting事件就可以轻松解决了. 在dataGridView添加CellFormatting事件,如:dataGridView1_CellFormatting 参考代码: private void dataGridView1_CellFormatting(object sender, Data…
winform中dataGridView隔行显示不同的背景色,鼠标移动上显示不同颜色,离开后变回原色 先设置奇数行颜色,这个有个自带的属性AlternatingRowsDefaultCellStyle dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue; //奇数行颜色 再在dataGridView上添加两个事件,分别是CellMouseLeave和CellMouseMove 代码如下: privat…
上一篇:winform中dataGridView高度自适应填充完数据的高度 winform中dataGridView高度自适应填充完数据的高度,就是dataGridView自身不产生滚动条,自己的高度是根据数据的多少而变动. 在load的时候,数据绑定后,加上如下代码: dataGridView1.Height = dataGridView1.Rows.Count * dataGridView1.RowTemplate.Height + dataGridView1.ColumnHeadersHe…
// winform中dataGridView高度自适应填充完数据的高度,就是dataGridView自身不产生滚动条,自己的高度是根据数据的多少而变动. 在load的时候,数据绑定后,加上如下代码: dataGridView1.Height = dataGridView1.Rows.Count * dataGridView1.RowTemplate.Height + dataGridView1.ColumnHeadersHeight; 原理:dataGridView的高度=dataGridVi…
下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法: DataGridViewCheckBoxColumn CheckBox是否选中 在判断DataGridView中CheckBox选中列的时候,用DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点击CheckBox时,结果显示未选中,但是如果我们在点击其他单元格时,结果显示选中.而用…
WinForm中DataGridView鼠标选中单元格内容复制方案 1.CTR+C快捷键复制 前提:该控件ClipboardCopyMode属性设置值非Disable: 2.鼠标框选,自定义代码实现复制 dataGridView1.SelectedCells可以获取单所有选中单元格.但是遍历单元格时,发现单元格顺序与界面显示顺序可能不一致. Datagridview中selectionMode属性与顺序有关 通过代码输出各单元格行列索引来确定格子.代码如下: private void copyT…
WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载)   转载至http://xuzhihong1987.blog.163.com/blog/static/267315872011315114240140/ 以前都是做web开发,最近接触了下WinForm,发现WinForm分页控件好像都没有,网上搜索了一下,发现有很多网友写的分页控件,分页效果应该都能实现吧,只是其风格都不是很符合我想要的.做web的时候,我习惯了Extjs的Grid分页效果,所以也想在Win…
CellMouseDown/CellMouseUp 可获得行.列号 可用if (rowIndex >= 0 && e.Y > 4 && e.Y < (this.CurrentCell.Size.Height - 4))来排除对行.列分割线的操作(如调整行列大小),其实就是判断鼠标的操作是否是在边框/分隔线附近 CellContentClick等事件,必须是点击在文本内容上时才能触发,空白处不行…
虽然DataGridView单双击事件都有,但双击事件其实也会触发单击事件的处理,所以如果双击事件和单击事件的行为不同,或者双击时不想触发单击事件,或者单击事件会阻塞双击事件的处理时(比如单击后会有弹窗),就需要自行去实现了. 整体思路: 对于DataGridView当前页的每一行,维护一份点击信息,用于后续判断和处理. 两个线程或者说处理逻辑之间互相依赖.主线程的事件处理依赖timer线程去清理数据,比如在判断是否发生了双击时,其实隐含依赖于timer线程处理中未超时清理第一次点击标识:tim…
datagridview先点标题排序,但是重新刷新之后,还是变成窗体加载后的样子 我这里用定时器刷新的. 1.先定义三个全局变量 /// <summary> /// 需要排序的列和方向 /// </summary> private ListSortDirection sortdirection = ListSortDirection.Ascending; //排序的列 private DataGridViewColumn sortcolumn = null; //排序列的index…
有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> /// 行状态更改时发生 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void da…
不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法: 主要用到了DataGridView的CurrentCellDirtyStateChanged和CellValueChanged两个事件 CurrentCellDirtyStateChanged事件是提交对checkbox状态的修改   CellValueChanged事件是当状态提交后,也就是单元格值改变后做一些其它的操作  …
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; 引用 选择DataGridView中的某一行,离开后,若数据变化则更新到…
原文转载自:http://hi.baidu.com/suming/item/81e45b1ab9b4585f2a3e2243 最近比较浅的研究了一下dataGridView的重绘,发现里面还是有很多东西可以学习的,摘录如下(其实就是在dataGridView1_CellPainting写一些代码) 主要代码: ; ; ; ; /// <summary> /// 窗体的重绘事件 /// </summary> /// <param name="sender"&…
第一: 数据绑定ComBoBox控件 先在窗体设计时拖一个ComBoBox控件,然后在里面的ITEMS设好你要下拉项,或者从数据库中的表绑定,这个估计都会. 第二: // 将下拉列表框加入到DataGridView控件中,这句放在绑定DataGridView之后写. 在窗体的Load方法中加入:g_DataGridView.Controls.Add(g_ComBoBox);也就是把ComBoBox控件添加到DataGridView控件中第三: 在DataGridView控件的CurrentCel…
转载:http://www.cnblogs.com/ganqiyin/archive/2013/02/18/2915491.html 事件:DataGridView验证单元格输入的是数字,DataGridView源数据是从数据库读取的. 需求:当用户输入的不是数字的时候需要提示信息(数据是直接绑定数据库的,因此dataGridView有自己的报错功能,我们需要屏蔽掉它,显示自己的错误提示!) 实现: 选择DataGridView的CellValidating事件 (1)  验证整数: 1 pri…
有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> /// 行状态更改时发生 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void da…
还是在抢票软件中出的问题,我没点击一个联系人,要生成一排控件,其中有席别combobox这样的下拉框控件,会出现如下图所示的问题:问题描述:在代码中动态创建的控件,事件混乱了,一个控件触发了所有同类型控件的事件.如上中,点击第一个combobox,第二个也跟着变了,创建控件的代码中并没有做事件关联.问题出在:所有动态创建的控件的数据源(datasource)都指向同一个对象(同一个内存地址),从而导致了上述问题.解决方案:在创建控件时,写一个方法,深拷贝数据源集合,让每个动态创建的控件的数据源都…
1.AllowUserToAddRows属性:指示是否向用户显示添加行的选项 AllowUserToOrderColumns属性:指示是否允许通过手动对列重新定位 AllowUserToResizeColumns属性:指示用户是否可以调整列的大小 AllowUserToResizeRows属性:指示用户是否可以调整行的大小 ClipboardCopyMode属性: 指示用户是否可以将单元格的文本值复制到剪贴板,以及是否包括行标题和列标题文本 ShowCellToolTips属性: 指示当鼠标指针…
1.DataGridViewCheckBoxColumn CheckBox是否选中 在判断DataGridView中CheckBox选中列的时候,用DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点 击CheckBox时,结果显示未选中,但是如果我们在点击其他单元格时,结果显示选中.而用DataGridViewRow.Cells[0].EditedFormattedValue.ToString…
最近,在做CS端数据导出到Excel中时网上找了很多代码感觉都不是自己想要的,通过自己的整理归纳得到一个比较通用的方法,就给大家分享一下: 该方法需要用到两个参数(即对象),一个  DataGridView对象 另外一个是我自己添加的一个进度条的对象,这样导出数据的时候会出现一个进度条,废话就不多说了,直接上源码,大家有什么想法可以留言一起讨论. 第一种方式:   public static bool OutToExcelFromDataGridView(string title, DataGr…
转自http://www.cnblogs.com/a1656344531/archive/2012/11/28/2792863.html c#读取XML   XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具.XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽…
数据绑定 直接指定源数据(List<T>):this.DataSource = data; 通常也可以直接指定DataTable类型的数据 DataTable dt = new DataTable(); DataColumn dc1 = new DataColumn(_column1Name, Type.GetType("System.String")); dt.Columns.Add(dc1); )) { DataRow dr = dt.NewRow(); dr[_col…
DataGridView支持指定DataGridViewImageColumn.DataGridViewButtonColumn等特殊类型的列,加入到Columns中. DataGridViewImageColumn imageButton = new DataGridViewImageColumn(); imageButton.Name = _column2Name; //imageButton.DataPropertyName = _column2Name; imageButton.Widt…
列标题不能居中的解决方法 一般列标题的居中我们都使用this.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; 这样就居中的了,但如果行单元格也居中时你仔细看会发现列标题并没有完全居中,而是略微往左边一点. 在DataGridview所在窗体的构造方法中添加语句,遍历DataGridview的列,设置列的排序模式为无排序 注意要在绑定数据后,比如如果是动态设置的DataSour…
如果将窗体或容器控件(如Panel控件)的AutoScroll属性设置为True时,那么当窗体或Panel容不下其中的子控件时就会出现 滚动条,通过移动滚动条可以上下显示出窗体或Panel中的全部内容.但是默认情况下滚动条的移动只能通过鼠标直接拖动滚动条来实现,而不能通过鼠标的滚 轮来实现上下移动,因此需要手动添加代码来实现这个功能. 滚动鼠标的滚轮,触发的是窗体或控件上的 MouseWheel 事件.但是在VS.net2005中,窗体和控件的事件列表中却不包含 MouseWheel 事件,因此…
在控件DataGridView绑定数据源后,发现DataGridViewCheckBoxColumn不能显示当前的check值.经过一番努力,现将完整代码奉献出来,仅供参考. 错误代码: /*禁止自动创建Column*/ this.dgvTestType.AutoGenerateColumns = false; /*设置binding 属性值*/ this.dgvTestType.Columns[0].DataPropertyName ="Id"; this.dgvTestType.C…
ComboboxColumn的用法网上很多,绑定数据源都很简单,这里我遇到的是.不绑定数据源,即所有comobox的绑定都是固定的几个数据: 可以看到没有绑定任何数据源, ,在后台cs中取到下拉框的值,通过linq将所有的下拉框的值存入了List<string>中: List<string> list = new List<string>(); list.AddRange(from DataGridViewRow row in DataGridView1.Rows se…
最近在做C# Winform项目,需要有一个能动态调整大小的Textbox,并且要是单行的.试了几次,单行模式的Textbox不能直接改高度.于是搜索了一下,整理出几个改变高度的方法. 1.将Textbox改为多行模式,设置MutliLine属性为True,然后屏蔽Enter键. private void txtTest_KeyDown (object sender, KeyEventArgs e){if ((int)e.KeyCode == 13){e.SuppressKeyPress = t…
1,窗体设计 首先需要引入程序集:Microsoft.Office.Interop.Excel  (如果没有引用过的需要右键添加引用再搜索就行了) 实现的方法: /// <summary> /// /// </summary> /// <param name="fileName">文件路径</param> /// <param name="myDGV">控件DataGridView</param>…