MSFlexGrid使用细则Word格式文档下载.docx

上传人:b****1 文档编号:236713 上传时间:2023-04-28 格式:DOCX 页数:12 大小:18.61KB
下载 相关 举报
MSFlexGrid使用细则Word格式文档下载.docx_第1页
第1页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第2页
第2页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第3页
第3页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第4页
第4页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第5页
第5页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第6页
第6页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第7页
第7页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第8页
第8页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第9页
第9页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第10页
第10页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第11页
第11页 / 共12页
MSFlexGrid使用细则Word格式文档下载.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MSFlexGrid使用细则Word格式文档下载.docx

《MSFlexGrid使用细则Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MSFlexGrid使用细则Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。

MSFlexGrid使用细则Word格式文档下载.docx

.Col=.FixedCols

.ColSel=.Cols()-.FixedCols-1

IfiMod2=0Then

.CellBackColor=&

HC0C0C0’浅灰

Else

.CellBackColor=vbBlue’兰色

EndIf

Nexti

EndWith

MSFlexGrid控件如何移到最后一行

MSFlexGrid1.TopRow=MSFlexGrid1.Rows–1

如何判断msflexgrid有无滚动条

DeclareFunctionGetScrollRangeLib"

user32"

(ByValhWndAsLong,ByValnBarAsLong,lpMinPosAs

Long,lpMaxPosAsLong)AsLong

PublicConstSB_HORZ=&

H0

PublicConstSB_VERT=&

H1

PublicFunctionVsScroll(MshGridAsMSHFlexGrid)AsBoolean’判断水平滚动条的可见性

DimiAsLong

VsScroll=False

i=GetScrollRange(MshGrid.hWnd,SB_HORZ,lpMinPos,lpMaxPos)

IflpMaxPos<

lpMinPosThenVsScroll=True

EndFunction

PublicFunctionHeScroll(MshGridAsMSHFlexGrid)AsBoolean’判断垂直滚动条的可见性

HeScroll=False

i=GetScrollRange(MshGrid.hWnd,SB_VERT,lpMinPos,lpMaxPos)

lpMinPosThenHeScroll=True

程序运行时,想动态增加MSFlexgrid的列数

在第2列后插入一列:

PrivateSubForm_Load()

Me.MSHFlexGrid1.Cols=5

MSHFlexGrid1.Rows=2

Fori=0ToMe.MSHFlexGrid1.Cols-1

Me.MSHFlexGrid1.TextMatrix(0,i)=i

Me.MSHFlexGrid1.TextMatrix(1,i)=i

Next

EndSub

PrivateSubCommand1_Click()

Me.MSHFlexGrid1.Cols=Me.MSHFlexGrid1.Cols+1

Me.MSHFlexGrid1.ColPosition(5)=3

请教MSFlexGrid中的对齐功能的使用

设置MSFlexGrid1.ColAlignment(index)=n

得到MSFlexGrid控件中当前选中的一行

msflexgrid1.rowsel就是当前选中行

如何通过代码调节列宽度

msflexgrid1.colwidth(i)=4000

将MsFlexGrid控件的内容输出到文本

2004-03-1914:

25:

18

'

OutDataToText

将MsFlexGrid控件中显示的内容输出到文本文件

PublicSubOutDataToText(FlexAsMSFlexGrid)

DimsAsString

DimiAsInteger

DimjAsInteger

DimkAsInteger

DimstrTempAsString

OnErrorGoToErt

Me.MousePointer=11

OnErrorResumeNext

DoEvents

DimFileNumAsInteger

FileNum=FreeFile

Open"

d:

aa.txt"

ForOutputAs#FileNum

WithFlex

k=.Rows

Fori=0Tok-1

strTemp="

"

Forj=0To.Cols-1

strTemp=strTemp&

.TextMatrix(i,j)&

"

"

Nextj

Print#FileNum,Left(strTemp,Len(strTemp)-1)

Nexti

Close#FileNum

Me.MousePointer=0

MsgBox"

导出成功"

Ert:

MsgBoxErr.Description

增加MsFlexGrid的编辑功能

(作者:

佚名加载日期:

2002/3/31)

概述

MsFlexGrid控件没有提供文本编辑的功能,下面的例子演示了如何利用一个TextBox实现编辑当前网格的功能

在按下一个键后,就把TextBox移动到当前的位置,并激活。

在键入回车或移动到其他网格时,

就把TextBox中的内容放到网格中。

实现步骤

1打开VB5,开启一个新的工程。

2在菜单“工程”中选择“部件”,在列表中选中“MicrosoftFlexGridControl..”

3放一个MsFlexGrid控件和一个TextBox控件(Text1)到Form1。

修改MsFlexGrid控件的名称为Grid1,

设置Grid1的行,列为4,固定行,列为0。

设置Text1的Visiable为False,BorderStyle为

None(0)。

4在Form1的代码中增加声明:

ConstASC_ENTER=13'

回车

DimgRowAsInteger

DimgColAsInteger

5增加代码到Grid_KeyPress过程:

PrivateSubGrid1_KeyPress(KeyAsciiAsInteger)

Movethetextboxtothecurrentgridcell:

Text1.Top=Grid1.CellTop+Grid1.Top

Text1.Left=Grid1.CellLeft+Grid1.Left

SavethepositionofthegridsRowandColforlater:

gRow=Grid1.Row

gCol=Grid1.Col

Maketextboxsamesizeascurrentgridcell:

Text1.Width=Grid1.CellWidth-2*Screen.TwipsPerPixelX

Text1.Height=Grid1.CellHeight-2*Screen.TwipsPerPixelY

Transferthegridcelltext:

Text1.Text=Grid1.Text

Showthetextbox:

Text1.Visible=True

Text1.ZOrder0'

把Text1放到最前面!

Text1.SetFocus

RedirectthisKeyPresseventtothetextbox:

IfKeyAscii<

ASC_ENTERThen

SendKeysChr$(KeyAscii)

EndIf

6增加代码到Text1_KeyPress过程:

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=ASC_ENTERThen

Grid1.SetFocus'

Setfocusbacktogrid,seeText_LostFocus.

KeyAscii=0'

IgnorethisKeyPress.

7增加代码到Text1_LostFocus过程:

PrivateSubText1_LostFocus()

DimtmpRowAsInteger

DimtmpColAsInteger

SavecurrentsettingsofGridRowandcol.Thisisneededonlyif

thefocusissetsomewhereelseintheGrid.

tmpRow=Grid1.Row

tmpCol=Grid1.Col

SetRowandColbacktowhattheywerebeforeText1_LostFocus:

Grid1.Row=gRow

Grid1.Col=gCol

Grid1.Text=Text1.Text'

Transfertextbacktogrid.

Text1.SelStart=0'

Returncarettobeginning.

Text1.Visible=False'

Disabletextbox.

ReturnrowandColcontents:

Grid1.Row=tmpRow

Grid1.Col=tmpCol

8好了。

按F5开始测试。

您可以自由地在Grid中移动,按回车可以开始或结束编辑。

使用MsFlexGrid控件的几个函数

作者:

中国论坛网收集来源:

加入时间:

2004-8-25

在VB处理数据显示的时候,使用表格是一种好的方法,虽然DataGrid可以与数据源绑定,但是总有美中不足,就是

外观不好看,所以有时应用MsFlexGrid显示数据还是一种比较好的方法,以下几个函数是用来控制MsFlexGrid的

程序

(本人语言表达能力有限,还请见谅)

MsFlexGrid操作函数

合并列

PublicFunctionMergeCol(GridObjAsObject,ByValStartColAsLong,ByValEndColAsLong,ByVal

ColValueAsString,ByValCurrentRowAsLong)AsBoolean

IfStartCol>

EndColOrStartCol>

GridObj.ColsOrCurrentRow>

GridObj.RowsThen

对不起,行列设置错误!

vbOKOnly,App.Title

MergeCol=False

ExitFunction

ForI=StartColToEndCol

GridObj.MergeCol(I)=True

GridObj.TextArray(faIndex(GridObj,CurrentRow,I))=ColValue

GridObj.ColAlignment(I)=flexAlignCenterCenter

NextI

GridObj.MergeRow(CurrentRow)=True

MergeCol=True

合并行

PublicFunctionMergeRow(GridObjAsObject,ByValStartRowAsLong,ByValEndRowAsLong,ByVal

RowValueAsString,ByValCurrentColAsLong)AsBoolean

IfStartRow>

EndRowOrStartRow>

GridObj.RowsOrCurrentCol>

GridObj.ColsThen

MergeRow=False

ForI=StartRowToEndRow

GridObj.MergeRow(I)=True

GridObj.TextArray(faIndex(GridObj,I,CurrentCol))=RowValue

GridObj.ColAlignment(CurrentCol)=flexAlignCenterCenter

GridObj.MergeCol(CurrentCol)=True

MergeRow=True

转换索引

PublicFunctionfaIndex(GridObjAsObject,ByValrowAsInteger,ByValcolAsInteger)AsLong

Ifrow>

GridObj.RowsOrrow<

0Orcol>

GridObj.ColsOrcol<

0Then

faIndex=-1

faIndex=row*GridObj.Cols+col

插入行

PublicFunctionSetItem(GridObjAsObject,ByValrowAsInteger,ByValcolAsInteger,ByVal

SetValueAsString)AsBoolean

SetItem=False

GridObj.TextArray(faIndex(GridObj,row,col))=SetValue

SetItem=True

得到单元格值

PublicFunctionGetItem(GridObjAsObject,ByValrowAsInteger,ByValcolAsInteger)AsString

GetItem="

GetItem=GridObj.TextArray(faIndex(GridObj,row,col))

在msflexgrid控件中每一个cell格的内容是不可以由用户直接编辑的但是我们可以通过一些小技

巧来方便的实现这编辑功能来扩展msflexgrid的应用(在实际应用中这是很常用的功能)。

你只需按下面的做即可轻松实现编辑msflexgrid控件数据的功能

例在窗体上放一文本框txtvalue,和一msflexgrid控件grid

‘文本框控件的keypress事件

privatesubtxtvalue_keypress(keyasciiasinteger)

‘放入一些处理过程,如只需输入数字时的处理

dimi

i=1

endsub

privatesubtxtvalue_change()

grid.text=txtvalue.text

在grid的entercell事件中加入下例代码

privatesubgrid_entercell()

txtvalue.text=grid.text

txtvalue.selstart=0

txtvalue.sellength=len(txtvalue.text)

当用户输入数据时直接调用文本框的keypress事件

privatesubgrid_keypress(keyasciiasinteger)

txtvalue_keypresskeyascii

ok,这样一个可编辑的msflexgrid控件就完成了,简单吧!

!

原理

当用户点击msflexgrid中的某个cell格要输入数据时,产生entercell事件,在这里我们对文本

框进行初始化,输入当前cell格中的内容,并且选中所有文本。

当用户要按下按键进行输入时,就直

接调用txtvalue的事件,由文本框来处理.

处理的结果同grid的当前cell同步,使用户编辑cell格就象使用文本框一样方便

PublicFunctionMergeCol(GridObjAsObject,ByValStartColAsLong,ByValEndColAsLong,ByValColValueAsString,ByValCurrentRowAsLong)AsBoolean

PublicFunctionMergeRow(GridObjAsObject,ByValStartRowAsLong,ByValEndRowAsLong,ByValRowValueAsString,ByValCurrentColAsLong)AsBoolean

PublicFunctionSetItem(GridObjAsObject,ByValrowAsInteger,ByValcolAsInteger,ByValSetValueAsString)AsBoolean

SetI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2