2024年3月31日发(作者:)

DataGridView添加右键菜单等技巧 DataGridView添加右键菜

单等技巧2010-12-16 2256 .右键点击行时选中行并弹出操作菜

单1.添加一个快捷菜单contextMenuStrip1 2.给dataGridView1

程序代码private void 的CellMouseDown事件添加处理程序

DataGridView1_CellMouseDownobject

senderDataGridViewCellMouseEventArgs e

ex0 //

态就不再进行设置

edfalse

election

edtrue //只选中一行时设

置活动单元格1

若行已是选中状

Index //弹出操作菜单

Position.Y

果图2.复制选中单元格的内容到剪贴板程序代码

pboardContent 3.

只显示自定义列程序代码

nerateColumnsfalse//必须在代码中设置

4.显示图片通常我们将图片路径保存在数据库中但在

①.添加一个dataGridView1中要显示图片可以进行如下操作

DataGridViewTextBoxColumn类型的列

NamePathDataPropertyNamePicVisibleFalse ②.添加一个

DataGridViewImageColumn类型的列NamePic

③.dataGridView1控件DataBindingComplete事件处理程序如

下程序代码private void

DataGridView1_DataBindingCompleteobject

senderDataGridViewBindingCompleteEventArgs e Image

image1null Image image2null string forint i0i

path

lepath image2new Bitmapimage1120120//

重设大小mage2

//

mage2 5.当网格未填充满控件时画线来填充空白区域

码///summary ///绘制网格填充空白区域

程序代

////summary ///param

namesender/param ///param namee/param public void

CellPaintingobject senderDataGridViewCellPaintingEventArgs e

DataGridView myDataGridViewDataGridViewsender

0 int

HeadersHeight//标题行高int

sHeightDataGridViewElementS

e//所有可见行总高

件高度int

int //控

tRowDataGridViewElementState

e//最后一行索引int

//列总数int width0 //当

网格未充满控件时才画线ifij k usingBrush gridBrushnew

lor usingPen

gridLinePennew PengridBrush //处理标题列

dersVisible

dersWidth

negridLinePenwidthijwidthk else width1 //

理正常列forint index0index countindex

e

negridLinePenwidthijwidthk 6.

手动添加列再在编辑列界面中逐个设置宽度。注意

AutoSizeColumnsMode的值必须为

能生效7.单元格内容格式化

否则自定义宽度不

自定义列宽

程序代码private void

dataGridView1_CellFormattingobject

senderDataGridViewCellFormattingEventArgs e DataGridView

myDataGridViewDataGridViewsender

Index

ng

ng 8.打造一

个漂亮的DataGridView 程序代码//样式

zeColumnsModeDataGridViewAutoSizeC

//列宽不自动调整手工添加列

dersWidth12//行标题宽度固定12

dersWidthSizeModeDataGridViewRow

eResizing//不能用鼠标调整列标

头宽度

lorColo

hiffon//奇数行背景色

//控件背景色

entData

Center//列标题居中显示

entDataGridViewConten

Center//单元格内容居中显示//行为

nerateColumnsfalse//不自动创建列

serToAddRowsfalse//

lytrue//不启用编辑

serToDeleteRowsfalse//不启用删除

RowSelect//单击单元格选中整行

electfalse//不能多选9.判断有无滚动条

不启用添加

程序代码//垂直滚动条

sHeightDataGridViewElementSta

有else

无//水平滚动条

umnsWidthDataGridViewElem

有else

无10.为什么列标题总不居中

题默认对齐方式设置为居中程序代码

已经将列标

entData

Center//列标题居中显示但

实际的效果总是偏左了一点原因是列可以进行排序排序标志

符号在列标题上占了空间。逐列按下边设置可去掉程序代码

deDataGridViewColumnSortM

table