VB中MsFlexGrid控件的使用细则
MSFlexGrid控件

MSFlexGrid控件MSFlexGrid控件显示和操作表格数据。
其对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。
当与Data控件绑定时,MSFlexGrid控件只显示只读数据。
你可以在MSFlexGrid中的任何单元放置文本、图片或这二者。
Row和Col属性指定MSFlexGrid控件的当前单元。
你可以在代码中指定当前单元,也可以在运行时使用鼠标或键盘改变当前单元。
Text属性引用了当前单元中的文本。
如果单元中的文本太长以致不能在单元中一行显示,将WordWrap属性置为True将在单元中分多行显示文本。
要在单元中显示多行文本,你需要增大单元的宽度(ColWidth属性)或行高度(RowHeight属性)。
使用Cols和Rows属性确定MSFlexGrid控件中的行数和列数。
MSFlexGrid特有事件※注1:MSFlexGrid控件的特有事件全部是不带参数的,要注意与DataGrid控件的同名事件区分※注2:执行顺序:LeaveCell → SelChange → EnterCell → RowColChange◇SelChange事件 (DISPID = 69)Private Sub object_SelChange()void OnSelChange(void);◇RowColChange事件 (DISPID = 70)Private Sub object_RowColChange()void OnRowColChange(void);◇EnterCell事件 (DISPID = 71)Private Sub object_EnterCell()void OnEnterCell(void);◇LeaveCell事件 (DISPID = 72)Private Sub object_LeaveCell()void OnLeaveCell(void);◇Scroll事件 (DISPID = 73)Private Sub object_Scroll()void OnScroll(void);◇Compare事件Private Sub object_Compare(row1, row2, cmp)void OnCompare(long nRow1, long nRow2, CMP_FUNC pFunc)ActiveX控件事件。
vbMSFlexGrid数据控件数据排序

vbMSFlexGrid数据控件数据排序在进行数据库编程的时候,经常会用到MSFlexGrid控件进行数据显示。
并且对数据进行排序是必不可少的一个环节。
使用WINDOWS 系统的用户,会习惯于点击标题进行数据排序。
而MSFlexGrid控件本身没有这个功能,笔者经过实践,总结出了点击MSFlexGrid标题进行排序的方法,与大家一起分享。
崔占民EMAIL:*************先添加MSFlexGrid控件,方法:菜单->工程->部件->Microsoft FlexGrid Control 6.0(后面为版本号),代码如下:Option ExplicitPrivate Const STR_SORT_ASC = "△"Private Const STR_SORT_DESC = "▽"Private Sub Form_Load()Dim i As Long'添加一些试验数据With MSFlexGrid1.Rows = 51.Cols = 5For i = 0 To 50.TextMatrix(i, 0) = ("Col" & i).TextMatrix(i, 1) = ("Col" & i).TextMatrix(i, 2) = ("Col" & i).TextMatrix(i, 3) = ("Col" & i).TextMatrix(i, 4) = ("Col" & i)NextEnd WithEnd Sub'排序函数Public Sub Sort(sgrd As MSFlexGrid, y As Single)With sgrdIf y >= .RowPos(0) And y < .RowPos(1) ThenIf .Tag <> "" ThenIf .Tag <> .Col Then.TextMatrix(0, .Tag) = Left(.TextMatrix(0, .Tag), Len(.TextMatrix(0, .Tag)) - 1)End IfEnd IfIf Right(.TextMatrix(0, .Col), 1) = STR_SORT_ASC Then.Sort = flexSortGenericAscending.TextMatrix(0, .Col) = Replace(.TextMatrix(0, .Col), STR_SORT_ASC, STR_SORT_DESC)ElseIf Right(.TextMatrix(0, .Col), 1) = STR_SORT_DESC Then .Sort = flexSortGenericDescending.TextMatrix(0, .Col) = Replace(.TextMatrix(0, .Col), STR_SORT_DESC, STR_SORT_ASC)Else.Sort = flexSortGenericDescending.TextMatrix(0, .Col) = .TextMatrix(0, .Col) & STR_SORT_ASC End If.Tag = .ColEnd IfEnd WithEnd SubPrivate Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)Sort MSFlexGrid1, yEnd Sub代码不多,不过实现的功能还是很方便的~~~~~。
控件msflexgrid的使用

控件msflexgrid 的使⽤参考⽹址; MSFlexGrid 控件的事件与⽅法1、MSFlexGrid 控件的事件(1)KeyPress 事件:当⽤户按下或释放任何⼀个ANSI 键(字母或数字等键)时触发。
定义:Private Sub <控件名>_KeyPress(KeyAscii As Integer)其中,形参(2) 定义:Private Sub <控件名>_KeyDown(KeyCode As Integer, Shift As Integer) 其中,形参KeyCode ⽤于表⽰⽤户按键的类型,取值如表8.3所⽰。
形参Shift ⽤于表⽰⽤户所按组合键(Ctrl 、Alt 、Shilt )(3)KeyUp 定义:Private Sub <控件名>_KeyUp(KeyCode As Integer, Shift As Integer)其中参数KeyCode 与Shift 的取值见表8.3与表8.4。
(4)MouseDown 事件:当⽤户按下⿏标触发。
定义:Private Sub <控件名>_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)其中,形参Button 表⽰⽤户按下的是⿏标左键、中键还是右键,取值如表8.5所⽰。
形参Shift (5) MouseUp 事件处理过程的原型定义与MouseDown 过程原型定义类似,此处不再叙述。
(6)EnterCell 与LeaveCell 事件:在进⼊⼀个单元格时触发EnterCell 事件,在离开⼀个单元格时触发LeaveCell 事件 。
这两个事件过程均⽆参数。
2、MSFlexGrid 控件的⽅法(1)Clear ⽅法:清除MSFlexGrid 控件所有单元格中内容。
(1)Clear⽅法:清除MSFlexGrid控件所有单元格中内容。
MSFlexGrid控件属性及使用方法整理

MSFlexGrid控件属性及使用方法整理================================================= MSFlexGrid总行数和总列数的定义:MSFlexGrid1.Rows = 5 '规定表格的总行数为5行MSFlexGrid1.Cols = 2 '规定表格的总列数为2行MSFlexGrid某一单元格的文本内容MSFlexGrid1.TextMatrix(3, 0) ="网站地址" '定义第3行的左边表头文本内容为:“网站地址”MSFlexGrid1.TextMatrix(3, 2) =" " 定义第3行第2列的文本内容为:“”右键选中MSFlexGrid的Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = vbRightButton ThenMSFlexGrid1.Row = y / MSFlexGrid1.RowHeight(0) - 0.5MSFlexGrid1.RowSel = MSFlexGrid1.Row'右键选种当前行---备用u3u3:'MSFlexGrid1.Col = 0'MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1'右键选种当前单元格---备用u3u3:'MSFlexGrid1.Col = x / MSFlexGrid1.ColWidth(0) - 0.5'MSFlexGrid1.Col = MSFlexGrid1.Col'Text1.Text = MSFlexGrid1.TextEnd IfEnd SubMSFlexGrid的单元格被点击时的事件Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlue '被点中MSFlexGrid的单元格背景变兰色MSFlexGrid1.CellForeColor = vbWhite '字体变白色End SubMSFlexGrid的单元格失去光标后的事件Private Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd Sub使MSFlexGrid的单元格内容可编辑'前提:新建两个text文本框,分别为text1和text1'====================从这里开始,使单元格可以编辑Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlueMSFlexGrid1.CellForeColor = vbWhiteText1.Text = MSFlexGrid1.TextText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubPrivate Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd SubPrivate Sub Text1_Change()MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = Text1.TextEnd SubPrivate Sub Text2_Change() '修改表头Dim r, c As Integerr = MSFlexGrid1.Rowc = 0MSFlexGrid1.TextMatrix(r, 0) = Text2.TextEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)Select Case KeyCodeCase vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDownKeyCode = 0End SelectEnd Sub'====================使单元格可以编辑,到此结束MSFlexGrid选中整行和整列右键点 MSFlexGrid控件,选“属性/样式”,把“合并单元格”选择为:“0 - Never”然后运行程序,就会发现MSFlexGrid可以自由选择整行或整列了!MSFlexGrid插入行Private Sub Command1_Click()If MSFlexGrid1.Rows < 2 ThenMSFlexGrid1.AddItem "AAA" & vbTab & "bbb"ElseMSFlexGrid1.AddItem "asdas" & vbTab & "bbb", 2 '这里的数字2表示在第2行处插入行End IfEnd SubMSFlexGrid删除行MSFlexGrid1.RemoveItem 3 '删除第三行。
MSFlexGrid控件属性及使用方法

MSFlexGrid控件属性及使用方法整理by u3u3以下容由u3u3编写测试成功!请注明来自:================================================= MSFlexGrid总行数和总列数的定义:MSFlexGrid1.Rows = 5 '规定表格的总行数为5行MSFlexGrid1.Cols = 2 '规定表格的总列数为2行MSFlexGrid某一单元格的文本容MSFlexGrid1.TextMatrix(3, 0) ="地址" '定义第3行的左边表头文本容为:“地址”MSFlexGrid1.TextMatrix(3, 2) =" " 定义第3行第2列的文本容为:“”右键选中MSFlexGrid的Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = vbRightButton ThenMSFlexGrid1.Row = y / MSFlexGrid1.RowHeight(0) - 0.5MSFlexGrid1.RowSel = MSFlexGrid1.Row'右键选种当前行---备用u3u3:'MSFlexGrid1.Col = 0'MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1'右键选种当前单元格---备用u3u3:'MSFlexGrid1.Col = x / MSFlexGrid1.ColWidth(0) - 0.5'MSFlexGrid1.Col = MSFlexGrid1.Col'Text1.Text = MSFlexGrid1.TextEnd IfEnd SubMSFlexGrid的单元格被点击时的事件Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlue '被点中MSFlexGrid的单元格背景变兰色MSFlexGrid1.CellForeColor = vbWhite '字体变白色End SubMSFlexGrid的单元格失去光标后的事件Private Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd Sub使MSFlexGrid的单元格容可编辑'前提:新建两个text文本框,分别为text1和text1'====================从这里开始,使单元格可以编辑Private Sub MSFlexGrid1_EnterCell()MSFlexGrid1.CellBackColor = vbBlueMSFlexGrid1.CellForeColor = vbWhiteText1.Text = MSFlexGrid1.TextText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubPrivate Sub MSFlexGrid1_LeaveCell()MSFlexGrid1.CellBackColor = vbWhiteMSFlexGrid1.CellForeColor = vbBlueEnd SubPrivate Sub Text1_Change()MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = Text1.TextEnd SubPrivate Sub Text2_Change() '修改表头Dim r, c As Integerr = MSFlexGrid1.Rowc = 0MSFlexGrid1.TextMatrix(r, 0) = Text2.TextEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCodeCase vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDownKeyCode = 0End SelectEnd Sub'====================使单元格可以编辑,到此结束MSFlexGrid选中整行和整列右键点 MSFlexGrid控件,选“属性/样式”,把“合并单元格”选择为:“0 - Never”然后运行程序,就会发现MSFlexGrid可以自由选择整行或整列了!MSFlexGrid插入行Private Sub Command1_Click()If MSFlexGrid1.Rows < 2 ThenMSFlexGrid1.AddItem "AAA" & vbTab & "bbb"ElseMSFlexGrid1.AddItem "asdas" & vbTab & "bbb", 2 '这里的数字2表示在第2行处插入行End IfEnd SubMSFlexGrid删除行MSFlexGrid1.RemoveItem 3 '删除第三行。
msflexgrid控件用法

msflexgrid控件用法MSFlexGrid控件是Visual Basic 6.0提供的一种非常有用的表格控件,可以在窗体中创建可编辑的网格。
它允许用户浏览和编辑多行和多列的数据,还可以对数据进行排序、过滤和格式化。
在本文中,我将详细介绍MSFlexGrid控件的用法,包括创建、显示和操作表格数据。
一、创建和显示MSFlexGrid控件在使用MSFlexGrid控件之前,首先需要在窗体中添加一个FlexGrid控件。
在VB6的工具箱中,可以找到FlexGrid控件并将其拖放到窗体上。
在窗体上添加FlexGrid控件后,可以通过设置控件的属性来进行进一步的配置和定制。
1. 设置列数和行数在使用MSFlexGrid控件之前,首先需要设置表格的列数和行数。
可以通过设置Col属性和Row属性来实现。
例如,设置表格的列数为5,行数为10的代码示例如下:MSFlexGrid1.Cols = 5MSFlexGrid1.Rows = 102. 设置表格显示样式可以通过设置控件的属性来设置表格的样式,例如,可以设置表格的边框颜色、背景颜色和字体。
以下是一些常用的属性设置示例:MSFlexGrid1.BorderStyle = flexBorderStyleFixedSingle ' 设置边框样式为单线条MSFlexGrid1.BackColor = vbWhite ' 设置背景颜色为白色MSFlexGrid1.ForeColor = vbBlack ' 设置前景颜色为黑色MSFlexGrid1.FontSize = 12 ' 设置字体大小为12号3. 添加数据到表格可以通过设置控件的TextMatrix属性来添加数据到表格中。
TextMatrix属性是一个二维数组,可以通过指定行和列的索引来设置相关的数据。
例如,将数据“Apple”添加到(1,1)位置的代码示例如下:MSFlexGrid1.TextMatrix(1, 1) = "Apple"二、操作MSFlexGrid控件中的数据在将数据添加到表格之后,可以对表格中的数据进行许多操作,例如,读取单元格数据、排序和过滤数据等。
VB中MSHFlexGrid的使用

VB-MSHFlexGrid的使用直接将查询数据填入MSHFLEXGRID:Sub QueryFromSybasebyCon(Condition)With QEvent‘QEvent为Form名称Con.Open strConnRemoters.CursorLocation=adUseClientrs.CursorType=adOpenKeysetOn Error Resume NextRs.Open"select*where"&Condition&"order by event_ts",Con, 3,1‘Condition为SQL查询条件.MSHFlexGrid1.Redraw=False‘重绘,可大大提高Grid的格式化后显示速度Set.MSHFlexGrid1.DataSource RsSet Rs=NothingSet Con=NothingEnd WithEnd Sub2.设置MSHFlexGrid的格式Sub FormatFlexGrid()With QEvent.MSHFlexGrid1If.Rows>1And.TextMatrix(1,1)<>""Then'Set Column width.ColWidth(0)=3000'Set Column header.TextMatrix(0,0)="Test"‘设置对齐.ColAlignment(5)=flexAlignRightCenterEnd If‘设置整行的颜色.Redraw=False.Row=3.Col=0.ColSel=.Cols-1.CellBackColor=RGB(254,216,209).Redraw=TrueEnd WithEnd Sub3.支持滚轮事件‘模块部分Public Cn As New ADODB.ConnectionPublic Const GWL_WNDPROC=(-4)Public Const WM_COMMAND=&H111Public Const WM_MBUTTONDOWN=&H207Public Const WM_MBUTTONUP=&H208Public Const WM_MOUSEWHEEL=&H20APublic Oldwinproc As LongPublic Declare Function SetWindowLong Lib"user32"Alias "SetWindowLongA"(ByVal hwnd As Long,_ByVal nIndex As Long,ByVal dwNewLong As Long)As LongPublic Declare Function CallWindowProc Lib"user32"Alias "CallWindowProcA"(ByVal lpPrevWndFunc As Long,_ByVal hwnd As Long,ByVal Msg As Long,ByVal wParam As Long,ByVal lParam As Long)As LongPublic Declare Function GetWindowLong Lib"user32"Alias "GetWindowLongA"(ByVal hwnd As Long,_ByVal nIndex As Long)As LongPublic Declare Function ShellExecute Lib"shell32.dll"Alias "ShellExecuteA"(ByVal hwnd As Long,ByVal lpOperation As String, ByVal lpFile As String,ByVal lpParameters As String,ByVal lpDirectory As String,ByVal nShowCmd As Long)As Long‘支持鼠标动作的函数Public Function FlexScroll(ByVal hwnd As Long,ByVal wMsg As Long,ByVal wParam As Long,ByVal lParam As Long)As LongSelect Case wMsgCase WM_MOUSEWHEELSelect Case wParamCase-7864320'向下滚动SendKeys"{PGDN}"Case7864320'向上滚动SendKeys"{PGUP}"End SelectEnd SelectFlexScroll=CallWindowProc(Oldwinproc,hwnd,wMsg,wParam, lParam)End Function‘窗体中的程序Private Sub MSHFlexGrid1_GotFocus()Oldwinproc=GetWindowLong(Me.hwnd,GWL_WNDPROC)SetWindowLong Me.hwnd,GWL_WNDPROC,AddressOf FlexScroll End SubPrivate Sub MSHFlexGrid1_LostFocus()SetWindowLong Me.hwnd,GWL_WNDPROC,OldwinprocEnd Sub支持键盘事件Private Sub MSHFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)Dim X As LongDim Y As LongDim L As LongDim Tmp As StringX=MSHFlexGrid1.ColY=MSHFlexGrid1.RowSelect Case KeyCode'功能或扩展Case46‘响应删除Delete键MSHFlexGrid1.Text=""Case vbKeyC'响应Ctrl+C复制功能Clipboard.ClearCall ExportExcelclip(QEvent.MSHFlexGrid1) End SelectEnd SubFunction ExportExcelclip(FLex As MSHFlexGrid)'------------------------------------------------‘将表中内容复制到剪贴板'[Scols]................复制的起始列'[Srows]...............复制的起始行'[Ecols]................复制的结束列'[Erows]...............复制的结束行'------------------------------------------------Screen.MousePointer=13'Dim Scols,Srows,Ecols,Erows As Integer With FLexScols=.ColSrows=.RowEcols=.ColSelErows=.RowSelIf.ColSel>.Col And.RowSel>.Row ThenScols=.ColSrows=.RowEcols=.ColSelErows=.RowSelElseIf.ColSel<.Col And.RowSel<.Row ThenScols=.ColSelSrows=.RowSelEcols=.ColErows=.RowElseIf.ColSel>.Col And.RowSel<.Row Then Scols=.ColSrows=.RowSelEcols=.ColSelErows=.RowElseIf.ColSel<.Col And.RowSel>.Row Then Scols=.ColSelSrows=.RowEcols=.ColErows=.RowSelEnd IfIf.Col=1And.Row=1ThenScols=0Srows=0End IfEnd WithDim i,J As IntegerDim str As StringDim Fileopens As BooleanOn Error GoTo errstr=""If Srows=0ThenFor i=Scols To Ecols'复制表头If i=Scols Then'str=str&FLex.TextMatrix(0,i)Elsestr=str&Chr(9)&FLex.TextMatrix(0,i)End IfNextEnd IfFor J=Srows To ErowsIf J>=1ThenFor i=Scols To EcolsIf i=Scols ThenElsestr=str&Chr(9)&FLex.TextMatrix(J, i)End IfNextstr=str&vbCrLfEnd IfNextClipboard.Clear'清除剪贴板Clipboard.SetText str'将正文放在剪贴板上Screen.MousePointer=0err:Select Case err.NumberCase0Case ElseScreen.MousePointer=0MsgBox err.Description,vbInformation,"复制出错"Exit FunctionEnd SelectEnd Function5.打印MSHFLEXGRIDSub InitPrint()‘初始化打印机Printer.Orientation=2‘横向为2,纵向为1Printer.ScaleMode=6‘以mm为单位Printer.ScaleLeft=30'左边界Printer.ScaleTop=30‘上边界Printer.ScaleHeight=300‘设定高度Printer.ScaleWidth=200‘设置宽度End SubSub PrintMSHGrid(FlexGrid As MSHFlexGrid)InitPrintFlexGrid.Parent.PrintFormPrinter.EndDocEnd SubMSHFLEXGRID的输出Public Sub OutDataToText(FLex As MSHFlexGrid)‘输出到TXT文本Dim s As StringDim i As IntegerDim J As IntegerDim k As IntegerDim strTemp As StringDim Fname As StringIf FLex.Rows>2ThenIf ="WebData"Then Fname="myfilename-" WebData.SelNode&".txt"'检查并创建临时文件夹Call CheckPathOn Error Resume NextDoEventsDim FileNum As IntegerFileNum=FreeFileOpen App.Path&"\Temp\"&Fname For Output As#FileNumWith FLexk=.RowsFor i=0To k-1strTemp=""For J=0To.Cols-1DoEventsstrTemp=&.TextMatrix(i,J)&","Next JPrint#FileNum,Left(strTemp, Len(strTemp)-1)Next iEnd WithClose#FileNumMsgBox“保存成功!文件名为"&Fname&vbCrLf&"保存路径为vbCrLf&App.Path&"\Temp"ElseMsgBox"无数据,请检查"End IfEnd SubSub ExporToExcel(FLex As MSHFlexGrid)‘输出到ExcelDim xlapp As Excel.ApplicationDim xlbook As Excel.WorkbookDim xlsheet As Excel.WorksheetWith FLexIf.Rows>2ThenIf ="WebData"Then Fname="Myfilename-" WebData.SelNode&".xls"Call CheckPathSet xlapp=CreateObject("Excel.Application")'创建Excel对象xlapp.Application.Visible=FalseOn Error Resume NextSet xlbook=xlapp.Workbooks.Add'设定单元格格式With xlbook.Worksheets(1).Name=Fname.Range("A1:M1").Font.Color=vbBlue.Range("A1:M1").Font.Bold=TrueColumns("A:M").EntireColumn.AutoFitEnd With'开始传输数据k=0For i=0To.Rows-1For J=0To.Cols-1xlbook.Worksheets(1).Cells(i+1,=.TextMatrix(i,J)Next JNext ixlbook.Worksheets(1).Columns("A:M").EntireColumn.AutoFitxlbook.SaveAs App.Path&"\Temp\"&Fnamexlbook.Application.QuitSet xlbook=NothingMsgBox“保存成功!文件名为"&Fname&vbCrLf&"保存路径为vbCrLf&App.Path&"\Temp"ElseMsgBox"无数据,请检查"End IfEnd WithEnd SubSub CheckPath()If Dir(App.Path&"\Temp",vbDirectory)=""ThenMkDir App.Path&"\Temp"End IfEnd SubMSHFlexGrid内放入CheckBox对象的代码看懂的话,里面加按钮没有问题。
wincc msflexgrid控件的用法

wincc msflexgrid控件的用法WinCC是西门子推出的一套面向过程自动化的监控与控制软件,其功能强大,覆盖了自动化行业的各个领域,包括工业自动化、制造业、能源管理、公共设施、楼宇自动化等。
WinCC的多种控件是实现监控和报警功能的核心部分之一,其中MSFlexGrid控件是一种常用的控件之一,具有强大的灵活性和可扩展性,下面将详细介绍MSFlexGrid控件的用法。
一、MSFlexGrid控件的基本概念和特点MSFlexGrid控件是一种用于显示和编辑表格数据的控件,其特点是可以根据需要自定义行数和列数,并可以显示大量的数据。
MSFlexGrid控件支持多种数据类型,包括字符串、整数、浮点数等,同时还可以设置行高、列宽、颜色、字体等属性,以便于满足不同的显示需求。
二、MSFlexGrid控件的创建和初始化创建MSFlexGrid控件的步骤如下:1. 首先,需要在VB环境中打开一个新的工程,并添加一个MSFlexGrid控件。
2. 然后,可以通过拖拽的方式调整控件大小和位置,以适应实际的界面设计需求。
3. 接下来,需要设置控件的一些基本属性,例如行数、列数、行高、列宽等。
初始化MSFlexGrid控件的步骤如下:1. 在VB环境中打开代码编辑器,并在Form_Load事件中添加代码。
2. 通过代码设置控件的属性,例如行数、列数、行高、列宽等。
3. 通过代码设置控件的样式,例如背景颜色、字体等。
4. 可以通过代码向控件中添加数据,例如通过循环遍历的方式向每个单元格赋值。
三、MSFlexGrid控件的常用属性和方法MSFlexGrid控件有很多常用的属性和方法,下面列举一些常用的如下:1. Rows属性,用于设置和获取控件的行数。
2. Cols属性,用于设置和获取控件的列数。
3. RowHeights属性,用于设置和获取控件的行高。
4. ColWidths属性,用于设置和获取控件的列宽。
5. TextMatrix方法,用于设置和获取单元格的数据。
VB中鼠标双击编辑MSFlexGrid

VB中鼠标双击编辑MSFlexGrid界面设置如图所示程序参考网上,已做修改:Const ASC_ENTER = 13 '回车Dim gRow As IntegerDim gCol As IntegerPrivate Sub MSFlexGrid1_DblClick()Text1.Top = MSFlexGrid1.CellTop + MSFlexGrid1.Top + Frame1.Top 'textbox的位置与所选单元格位置一致Text1.Left = MSFlexGrid1.CellLeft + MSFlexGrid1.Left + Frame1.LeftgRow = MSFlexGrid1.Row '要赋值的单元格横坐标gCol = MSFlexGrid1.Col '要赋值的单元格纵坐标Text1.Width = MSFlexGrid1.CellWidth '设置textbox导向与单元格大小一致Text1.Height = MSFlexGrid1.CellHeightText1.Text = MSFlexGrid1.Text '保留原值Text1.Visible = TrueText1.ZOrder 0 '把Text1 放到最前面!Text1.SetFocusEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = ASC_ENTER Then '按下回车键MSFlexGrid1.SetFocus 'MSFlexGrid1获得焦点,完成单元格赋值KeyAscii = 0 'End IfEnd SubPrivate Sub Text1_LostFocus()Dim tmpRow%, tmpCol%' Save current settings of Grid Row and col. This is needed only if ' the focus is set somewhere else in the Grid.tmpRow = MSFlexGrid1.RowtmpCol = MSFlexGrid1.Col' Set Row and Col back to what they were before Text1_LostFocus: MSFlexGrid1.Row = gRow '要赋值的单元格横坐标MSFlexGrid1.Col = gCol '要赋值的单元格纵坐标MSFlexGrid1.Text = Text1.Text ' 赋值Text1.SelStart = Len(Text1) '设置textbox光标在内容末尾Text1.Visible = False ' text box不可见' Return row and Col contents:MSFlexGrid1.Row = tmpRowMSFlexGrid1.Col = tmpColEnd Sub。
VB-MSFlexGrid控件-4

VB-MSFlexGrid控件-4Col和Row属性(MSHFlexGrid)这两个属性返回或设置MSHFlexGrid中活动单元的坐标。
在设计时不可用。
应用于MSHFlexGrid控件,MSFlexGrid控件。
语法object.Col[=number]object.Row[=number]Col和Row的语法包含以下部分:部分描述object对象表达式,其值是“应用于”列表中的对象numberLong类型值。
它指定了活动单元的位置说明可以用这些属性来指定MSHFlexGrid中的单元,或者找到包含当前单元的那个行或者列。
行和列是从0开始计数的,对于行来说,以顶端为起始,而对于列来说,则以左边为起始。
对这些属性进行设置会自动对RowSel和ColSel进行重置,这样,所选定的就变成了当前单元。
因此,为了指定一个块选定,必须首先对Row和Col进行设置,然后对RowSel和ColSel进行设置。
当前单元的值(由Col和Row的设置值所决定的),就是包含在那个单元中的文本。
可以用T extMatrix属性在不改变已选定的Row和Col属性的情况下,对单元的值进行修改。
请参阅Cols,Rows属性(MSHFlexGrid),ColSel,RowSel属______性,SelChange事件(MSHFlexGrid),Sort属性(MSHFlexGrid),Text属性(MSHFlexGrid),TextMatrix属性,Bands属性(MSHFlexGrid)。
示例在该示例中,将“Here”放到当前单元中,然后将活动单元更改为第3行中的第3个单元,并将“There”放到那个单元中。
可以单击F5键来运行该程序,然后单击网格。
注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。
Private Sub Form1_Load()MSHFlexGrid1.Rows=8MSHFlexGrid1.Cols=5End SubPrivate Sub MSHFlexGrid1_Click()'将文本放到当前单元中。
MSFlexGrid表格控件详细说明

MSFlexGrid 表格控件详细说明控件名:Microsoft FlexGrid Control文件:sys\msflxgrd.ocx============================= 属性=========================================■AllowBigSelection 属性在行头或者列头上单击时,(是否)可以使得整个行或者列都被选中。
■AllowUserResizing 属性 (是否)可以用鼠标来对 MSFlexGrid 控件中行和列的大小进行重新调整。
-------------------------------------■Appearance 属性设计时的绘图风格■BorderStyle 属性边框样式-------------------------------------■BackColorBkg 属性 '表格多余部分颜色■BackColorFixed 属性 '表格头部分颜色■BackColorSel属性 '选中部分颜色■BackColor属性 '所有未确定单元的颜色■CellBackColor 和 CellForeColor 属性返回或设置单个单元或者一群单元的背景和前景颜色。
-------------------------------------■ForeColor、ForeColorFixed 以及 ForeColorSel 属性各部分上文本的颜色。
■TextStyle 和 TextStyleFixed[= style ] 属性返回或设置指定单元或者一群单元上文本的三维样式。
----------------------------------------■FixedAlignment (index)= [value] 属性列号,设置值flexAlignLeftTop 0 左顶部flexAlignLeftCenter 1 左中flexAlignLeftBottom 2 左底部flexAlignCenterTop 3 中顶部flexAlignCenterCenter 4 中中flexAlignCenterBottom 5 中底部flexAlignRightTop 6 右顶部flexAlignRightCenter 7 右中flexAlignRightBottom 8 右底部■ColAlignment(number) 属性 [= value ] 返回或设置某一列中数据的对齐方式number=列号,或者 -1(一次性地对所有列进行设置)。
MSFlexGrid基本使用

MSFlexGrid基本使用第一篇:MSFlexGrid基本使用1.给FlexGrid控件绑定成员变量:m_FlexGrid。
2.设置行列数m_FlexGrid.SetCols(4);//设置列数m_FlexGrid.SetRows(6);//设置行数3.设置固定行数和固定列数m_FlexGrid.SetFixedRows(1);//设置固定行数为1行m_FlexGrid.SetFixedCols(0);//设置固定列数为0列4.设置列宽、行高m_FlexGrid.SetColWidth(1,1500);//设置列号为1的列宽为1500m_FlexGrid.SetRowHeight(2,300);//设置行号为2的行高为3005.设置文本对齐方式m_FlexGrid.SetColAlignment(1,4);//设置列号为1的文本对齐方式参数对应描述为:0单元内容顶部左对齐。
1单元内容中间左对齐。
对字符串的缺省设置值。
2单元内容底部左对齐。
3单元内容顶部居中。
4单元内容中间居中。
5单元内容底部居中。
6单元内容顶部右对齐。
7单元内容中间右对齐。
对数字的缺省设置值。
8单元内容底部右对齐。
9单元内容一般对齐方式。
对字符串中间左对齐而对数值中间右对齐。
6.设置表头和单元格内容m_FlexGrid.SetTextArray(0,“Head1”);//设置表头(第1列)内容为“Head1”m_FlexGrid.SetTextMatrix(1,1,“Text”);//设置单元格(行号1列号1)内容为“T ext”7.增加一行m_FlexGrid.AddItem(“AddString”,(COleVariant)(3L));//在行号为3的位置增加一行8.合并单元格for(i=0;i<4;i++)m_FlexGrid.SetTextMatrix(5,i,“合计”);//将行号为5、列号从0到4的单元格内容设为相同“合计”m_FlexGrid.SetMergeCells(2);//设置单元格合并方式(下述)m_FlexGrid.SetMergeRow(5,TRUE);//设置要合并的行SetMergeCells函数的参数值如下:0: flexMergeNever默认的选项,就是不合并1: flexMergeFree不规则的合并2: flexMergeRestrictRows行合并3: flexMergeRestrictColumns列合并4: flexMergeRestrictBoth行,列都合并注意只有单元格内容相同时才能进行合并操作。
VB-MSFlexGrid控件-3

VB-MSFlexGrid控件-3CellFontSize属性该属性返回或设置以点数为单位的当前单元文本的尺寸。
在设计时不可用。
应用于MSHFlexGrid控件,MSFlexGrid控件。
语法object.CellFontSize[=value]CellFontSize属性的语法有以下部分:部分描述object对象表达式,其值是“应用于”列表中的对象valueSingle类型。
数值表达式,它指定了当前单元文本的尺寸说明对该属性所做的更改会影响到当前单元或者当前选定,这取决于FillStyle属性的设置值。
请参阅FillStyle属性(MSHFlexGrid),CellFontBold属性,CellFontItalic属性,CellFontName属性,CellFontUnderline属性,CellFontWidth属性。
示例无论何时,当MSHFlexGrid控件在焦点中时,下面的代码将当前单元的文本的尺寸设置为12个点:注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。
Sub MSHFlexGrid1_GotFocus()MSHFlexGrid1.CellFontSize=12End SubCellFontStrikeThrough属性该属性返回或者设置一个值,该值决定了是否将Strikethrough样式应用到当前单元文本中。
应用于MSHFlexGrid控件,MSFlexGrid控件。
语法object.CellFontStrikeThrough[=boolean]CellFontStrikeThrough属性语法有如下部分:部分描述object对象表达式,其值是“应用于”列表中的对象boolean布尔表达式,它决定了是否将StrikeThrough样式应用到单元文本中设置Boolean的设置值是:设置值描述True将StrikeThrough样式应用到单元文本中False(缺省的)不将StrikeThrough样式应用到单元文本中说明对CellFontStrikeThrough属性所做的更改会影响到当前单元或者当前选定,这取决于FillStyle属性的设置值。
VB数据库编程中MSHFlexGrid控件用法详解

VB数据库编程中MSHFlexGrid控件用法详解添加MSHFlexGrid将Name改成flex1添加text 将name 改成txteditPublic rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset '定义数据集对象Dim i As Integer, j As IntegerSub EditKeyCode(MSHFlexGrid As Control, Edt As Control, KeyCode As Integer, Shift As Integer)'标准编辑控件处理。
Select Case KeyCodeCase 27 'ESC:隐藏焦点并将其返回MSFlexGridEdt.Visible = FalseMSHFlexGrid.SetFocusCase 13 'ENTER 将焦点返回MSFlexGrid。
MSHFlexGrid.SetFocusDoEventsIf MSHFlexGrid.Col < MSHFlexGrid.Cols - 1 ThenMSHFlexGrid.Col = MSHFlexGrid.Col + 1ElseIf MSHFlexGrid.Col = MSHFlexGrid.Cols - 1 ThenMSHFlexGrid.Row = MSHFlexGrid.Row + 1MSHFlexGrid.Col = 1End IfEnd IfCase 38 '向上MSHFlexGrid.SetFocusDoEventsIf MSFlexGrid.Row > MSFlexGrid.FixedRows ThenMSFlexGrid.Row = MSFlexGrid.Row - 1End IfEnd SelectEnd SubSub view_DP()If flex1.Col = 4 Or flex1.Col = 5 Or flex1.Col = 6 Then'格式化Flex1表的第7列、第8列、第9列、第11列flex1.TextMatrix(flex1.Row, 5) = Format(flex1.TextMatrix(flex1.Row, 5), "0.00")flex1.TextMatrix(flex1.Row, 6) = Val(flex1.TextMatrix(flex1.Row, 4)) * Val(flex1.TextMatrix(flex1.Row, 5))flex1.TextMatrix(flex1.Row, 6) = Format(flex1.TextMatrix(flex1.Row, 6), "0.00") End IfDim A, B As Single '声明单精度浮点型变量On Error Resume NextFor i = 1 To flex1.Rows - 1If flex1.TextMatrix(i, 1) <> "" And flex1.TextMatrix(i, 4) <> "" And flex1.TextMatrix(i, 6) <> "" ThenA = Val(flex1.TextMatrix(i, 6)) + A '求合计金额B = Val(flex1.TextMatrix(i, 4)) + B '求合计数量End IfNext ilblCount = BlblSum = Format(A, "0.00") '格式化合计金额End SubSub SetButtons(bV al As Boolean)cmdRegister.Enabled = Not bV alcmdSave.Enabled = bValcmdCancel.Enabled = bValflex1.Enabled = bV alFrame1.Enabled = bValEnd SubPrivate Sub DataGrid2_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenWith Adodc2.Recordset'赋值给flex1表格If .Fields("商品名称") <> "" Then flex1.TextMatrix(flex1.Row, 1) = Trim(.Fields("商品名称"))If .Fields("规格") <> "" Then flex1.TextMatrix(flex1.Row, 2) = Trim(.Fields("规格"))If .Fields("单位") <> "" Then flex1.TextMatrix(flex1.Row, 3) = Trim(.Fields("单位"))flex1.TextMatrix(flex1.Row, 5) = .Fields("成本价")End Withflex1.Col = 4DataGrid2.Visible = False 'DataGrid2不可见txtEdit.Text = ""txtEdit.SetFocusEnd IfIf KeyCode = vbKeyEscape Then '按ESC键DataGrid2不可见DataGrid2.Visible = False' txtEdit.SetFocus 'txtEdit获得焦点End IfEnd SubPrivate Sub delone_Click()For i = 1 To flex1.Cols - 1flex1.TextMatrix(flex1.Row, i) = ""Next iview_DPEnd SubPrivate Sub flex1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)'利用PopupMenu方法If Button And vbRightButton ThenPopupMenu edit '弹出菜单End IfEnd SubPrivate Sub Form_Load()Dim i As Integer'使第一列较窄。
VB中MsFlexGrid控件的使用细则

VB中MsFlexGrid控件的使用细则Dim MSHFlexGrid1Set MSHFlexGrid1 = ScreenItems("MSHFl exGrid1") MSHFlexGrid1.Rows=5 '#设置总行数MSHFlexGrid1.Cols =5 '#设置总列数MSHFlexGrid1.TextMatrix(0,0)="ID" '#设置标题ID MSHFlexGrid1.TextMatrix(0,1)="NAME" '#设置标题NAME Dim jFor j = 1 To 10MSHFlexGrid1.TextMatrix(j,0)=CStr(j)MSHFlexGrid1.TextMatrix(j,1)="User_" & CStr(j)Next1.VB中MsFl exGrid控件的使用细则>> 将文本赋值给MsFlexGrid的单元格MsFlexGrid.TextMatrix(3,1)=”Hello” .>> 在MsFlexGrid控件单元格中插入背景图形Set MsFlexGrid.CellPicture=LoadPicture(“C:\temp\1.bmp”) 版权申明:本站文章均来自网络.>>选中某个单元MsFlexGrid.Row=1MsFlexGrid.Col=1 。
>>用粗体格式化当前选中单元MsFlexGrid.CellFontBold=True 根据专家观察,这样的理论和现象都是值得各位站长深思的,所以希望大家多做研究学习,争取总结出更多更好的经验!>> 添加新的一行使用AddItem方法,用Tab字符分开不同单元格的内容dim row as stringrow=”AAA”&VBtab&”bbb”MsFlexFrid1.addItem row ..>>怎样来实现MSFlexGrid控件单数行背景为白色,双数的行背景为蓝色?Dim i As IntegerWith MSFlexGrid1.AllowBigSelection = True ’设置网格样式.FillStyle = flexFillRepeatFor i = 0 To .Rows - 1.Row = i: .Col = .FixedCols.ColSel = .Cols() - .FixedCols - 1If i Mod 2 = 0 Then.CellBackColor = &HC0C0C0 ’浅灰Else.CellBackColor = vbBlue ’兰色End IfNext iEnd With 。
vb的按钮控件 使用Frame控件 vb的FlexGrid控件

vb的按钮控件发布时间:2007-05-05 来源:未知作者:未知使用CommandButton控件命令按钮控件被用来启动、中断或结束一个进程。
单击它时将调用已写入Click 事件过程中的命令。
大多数Visual Basic应用程序中都有命令按钮,用户可以单击按钮执行操作。
单击时,按钮不仅能执行相应的操作,而且看起来就象是被按下和松开一样,因此有时称其为下压按钮。
详细信息关于CommandButton 控件的简单示例,请参阅第三章,“窗体、控件和菜单”中的“单击按钮执行操作”。
向窗体添加命令按钮在应用程序中很可能要使用一个或多个命令按钮。
就象在其它控件绘制按钮那样,在窗体上添加命令按钮。
可用鼠标调整命令按钮的大小,也可通过设置Height 和Width 属性进行调整。
设置标题可用Caption 属性改变命令按钮上显示的文本。
设计时,可在控件的“属性”窗口中设置此属性。
在设计时设置Caption 属性后将动态更新按钮文本。
Caption 属性最多包含255 个字符。
若标题超过了命令按钮的宽度,则会折到下一行。
但是,如果控件无法容纳其全部长度,则标题会被剪切。
可以通过设置Font 属性改变在命令按钮上显示的字体。
创建键盘快捷方式可通过Caption 属性创建命令按钮的访问键快捷方式,为此,只需在作为访问键的字母前添加一个连字符(&)。
例如,要为标题"Print" 创建访问键,应在字母"P" 前添加连字符,于是得到"&Print"。
运行时,字母"P" 将带下划线,同时按ALT+P 键就可选定命令按钮。
注意如果不创建访问键,而又要使标题中包含连字符但不创建访问键,应添加两个连字符(&&)。
这样一来,在标题中就只显示一个连字符而不显示下划线。
指定Default 和Cancel 属性在每个窗体上部可选择一个命令按钮作为缺省的命令按钮,也就是说,不管窗体上的哪个控件有焦点,只要用户按ENTER 键,就已单击此缺省按钮。
VB编程:使用MSHFlexGrid控件与Excel互传数据

VB编程:使用MSHFlexGrid控件与Excel互传数据使用MSHFlexGrid控件获取并更新Excel中的数据要点:1、工程-引用,勾选Microsoft Excel 11.0 Object Libraly。
2、工程-部件,勾选Microsoft Hierarchical FlexGridControl 6.0。
3、在窗体添加一个MSHFlexGrid控件。
4、将需要打开更新的电子表格设置为“共享”(非常重要),方法:工具--共享工作簿。
代码:Private Sub Form_Load()Dim xlExcel As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim AppExcel As ObjectSet xlExcel = CreateObject("Excel.Application")xlExcel.Workbooks.Open "C:\Program Files\Microsoft Visual Studio\mywork\book1.xls"Set xlBook = xlExcel.Workbooks("book1.xls")Set xlSheet = xlBook.Worksheets(2)'选择第2个工作表Dim i As LongWith xlSheetx = 2y = 1While .Cells(2, y).Value <> ""y = y + 1WendWhile .Cells(x, 1).Value <> ""x = x + 1Wend'Debug.Print .RowsMSHFlexGrid1.Rows = x - 1MSHFlexGrid1.Cols = y - 1 MSHFlexGrid1.TextMatrix(0, 0) = .Cells(2, 1).ValueFor j = 2 To MSHFlexGrid1.ColsDim k As Integerk = jIf k Mod 2 = 1 Then k = k - 1MSHFlexGrid1.TextMatrix(0, j - 1) = .Cells(1, k) & .Cells(2, j) NextFor i = 3 To MSHFlexGrid1.RowsFor j = 1 To MSHFlexGrid1.Cols MSHFlexGrid1.TextMatrix(i - 2, j - 1) = .Cells(i, j).ValueNextNextEnd WithWith MSHFlexGrid1.Col = 1.Row = 1' .CellBackColor = vbBlueEnd With xlBook.Close (False) '关闭EXCEL工作簿Set xlSheet = NothingSet xlBook = NothingxlExcel.Quit '关闭EXCELSet xlExcel = Nothing '释放EXCEL对象End SubPrivate Sub Command4_Click() Dim xlExcel AsExcel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim AppExcel As Object'MSFlexGrid1.Redraw = FalseSet xlExcel = CreateObject("Excel.Application")Set xlBook = xlExcel.Workbooks.Open("C:\Program Files\Microsoft Visual Studio\mywork\book1.xls", , ReadWrite) 'Set xlBook = xlExcel.Workbooks("zkb.xls")Set xlSheet = xlBook.Worksheets(2)' xlExcel.Visible = True '设置工作簿为可见With xlSheetFor i = 3 To MSHFlexGrid1.RowsFor j = 1 To MSHFlexGrid1.Cols .Cells(i, j) = MSHFlexGrid1.TextMatrix(i - 2, j - 1)NextNext End With'MSFlexGrid1.Redraw = TruexlBook.SavexlExcel.DisplayAlerts = FalsexlBook.Close (False) '关闭EXCEL工作簿Set xlSheet = NothingSet xlBook = NothingxlExcel.Quit '关闭EXCELSet xlExcel = Nothing '释放EXCEL对象End SubPrivate Sub Form_Load()Dim xlExcel As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim AppExcel As ObjectSet xlExcel = CreateObject("Excel.Application")xlExcel.Workbooks.Open "C:\Program Files\Microsoft Visual Studio\mywork\book1.xls"Set xlBook = xlExcel.Workbooks("book1.xls")Set xlSheet = xlBook.Worksheets(2)Dim i As LongWith xlSheetx = 2y = 1While .Cells(2, y).Value <> ""y = y + 1WendWhile .Cells(x, 1).Value <> ""x = x + 1Wend'Debug.Print .RowsMSHFlexGrid1.Rows = x - 1MSHFlexGrid1.Cols = y - 1 MSHFlexGrid1.TextMatrix(0, 0) = .Cells(2, 1).ValueFor j = 2 To MSHFlexGrid1.ColsDim k As Integerk = jIf k Mod 2 = 1 Then k = k - 1MSHFlexGrid1.TextMatrix(0, j - 1) = .Cells(1, k) & .Cells(2, j) NextFor i = 3 To MSHFlexGrid1.RowsFor j = 1 To MSHFlexGrid1.Cols MSHFlexGrid1.TextMatrix(i - 2, j - 1) = .Cells(i, j).ValueNextNextEnd WithWith MSHFlexGrid1.Col = 1.Row = 1' .CellBackColor = vbBlueEnd With xlBook.Close (False) '关闭EXCEL工作簿Set xlSheet = NothingSet xlBook = NothingxlExcel.Quit '关闭EXCELSet xlExcel = Nothing '释放EXCEL对象End SubPrivate Sub MSHFlexGrid1_Click()With MSHFlexGrid1.CellBackColor = vbCyanText3 = .TextMatrix(.Row, .Col)End WithText3.SetFocusEnd SubPrivate Sub MSHFlexGrid1_DblClick()With MSHFlexGrid1If .CellBackColor = vbCyan Then .CellBackColor = &HFFFFFF End WithEnd Sub。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.VB中MsFlexGrid控件的使用细则>> 将文本赋值给MsFlexGrid的单元格(3,1)=”Hello” .>> 在MsFlexGrid控件单元格中插入背景图形Set =LoadPicture(“C:\temp\”) 版权申明:本站文章均来自网络.>>选中某个单元=1=1 。
>>用粗体格式化当前选中单元=True 根据专家观察,这样的理论和现象都是值得各位站长深思的,所以希望大家多做研究学习,争取总结出更多更好的经验!>> 添加新的一行使用AddItem方法,用Tab字符分开不同单元格的内容dim row as stringrow=”AAA”&VBtab&”bbb”row ..>>怎样来实现MSFlexGrid控件单数行背景为白色,双数的行背景为蓝色?Dim i As IntegerWith MSFlexGrid1.AllowBigSelection = True ’设置网格样式.FillStyle = flexFillRepeatFor i = 0 To .Rows - 1.Row = i: .Col = .FixedCols.ColSel = .Cols() - .FixedCols - 1If i Mod 2 = 0 Then.CellBackColor = &HC0C0C0 ’浅灰Else.CellBackColor = vbBlue ’兰色End IfNext iEnd With 。
>> MSFlexGrid控件如何移到最后一行= – 1 版权申明:本站文章均来自网络,如有侵权,请联系-215,我们收到后立即删除,谢谢!>>如何判断msflexgrid有无滚动条Declare Function GetScrollRange Lib "user32" (ByVal hWnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As LongPublic Const SB_HORZ = &H0Public Const SB_VERT = &H1 .Public Function VsScroll(MshGrid As MSHFlexGrid) As Boolean ’判断水平滚动条的可见性Dim i As LongVsScroll = Falsei = GetScrollRange, SB_HORZ, lpMinPos, lpMaxPos)If lpMaxPos <> lpMinPos Then VsScroll = TrueEnd Function 。
Public Function HeScroll(MshGrid As MSHFlexGrid) As Boolean ’判断垂直滚动条的可见性Dim i As LongHeScroll = Falsei = GetScrollRange, SB_VERT, lpMinPos, lpMaxPos)If lpMaxPos <> lpMinPos Then HeScroll = TrueEnd Function .>>程序运行时,想动态增加MSFlexgrid的列数Private Sub Form_Load()= 4= 2For i = 0 To - 1i) = ii) = iNextEnd SubPrivate Sub Command1_Click()= + 1 '增加一列= 2 '将第四列插到第二列的前面End Sub>> 请教MSFlexGrid中的对齐功能的使用设置(index)=n>>得到MSFlexGrid控件中当前选中的一行就是当前选中行 .>> 如何通过代码调节列宽度(i)=4000 ..2控件MSFlexGrid的属性和方法(VB控件)1)属性类型说明AllowBigSelectorBoolean返回/设置一个值,定义当在行或列的头部单击时,是否该行或列将整个被选中AllowUseResizingEnum设置/返回一个值,定义用户是否可以调整网格行,列的尺寸BackColorOle_Color设置/返回一网格中非固定单元的背景色BackColorBandArray/Ole_Color设置/返回网格中每个独立BAND的背景色BachColorBkgOle_Color设置/返回网格的背景色(单元头部除外)BackColorFixedOle_Color设置/返回网格中固定单元的背景色BackColorHeaderArray/Ole_Color设置/返回网格头部单元的背景色BackColorIndentArray/Ole_Color设置/返回网格中凹痕部分的背景色BackColorSelOle_Color设置/返回网格选中单元的背景色BackColorUnpopulatedOle_Color设置/返回网格非用户操作区的背景色BandDataArray/Long为独BAND设置/返回任意的值,以合在代码中通过这些值确定BANDBandDisplayEnum定义在网格中BAND是水平还是垂直显示BandExpandableARRAY/BOOLEN设置/返回值指明独立的BAND能否被折叠或展开BandIndentArray/Long定义BAND划分的字段数量BandLevelLong返回当前的单元包含的BAND总数量BandsLong返回网格中BAND总数量CellAlignmentInteger设置/返回一个值以定义当前单元的水平和垂直对齐方式CellBackColorOle_Color定义当前单元的字体是否为粗体CellFontBoldBoolean定义当前单元的字体是否为粗体CellFontItalicBoolean定义当前单元的字体是否为斜体CellFontNameString定义当前单元的字体名CellFontSizeString定义当前单元的字体大小CellFontStrikeThoughBoolean定义当前单元的字体是否为突显示CellFontUnderlineBoolean定义当前单元的字体是有下划线CellFontWidthSingle定义当前单元的字体宽(用点表示)CellFontColorOle_Color设置/返回当前单元格的前景色CellHeightLong设置/返回当前单元格的高度CellLeftLong返回当前单元格的左边距CellPictureStdPicture设置/返回当前单元格的图片CellPictureAlignmentInteger设置/返回当前单元格或某范围的单元格的图像对齐方式CelltextStyleEnum设置/返回当前单元或选中范围单元文本的3D风格CellTopLong返回当前单元格的垂直位置CellTypeEnum设置/返回当前单元格的类型(标准.固定)CellWidthLong返回/设置当前的单元的宽度ClipString设置/返回网格选定范围单元的内容ColArray/Integer设置/返回当前单元的水平坐标ColAlignmentArray/Integer设置/返回当前列的对齐方式ColalignmentBandArray/Integer设置/返回BAND数据列的对齐方式ColAlignmentFixed Array/Integer设置/返回固定单元数据的对齐方式ColAlignmentHeaderArray/Integer设置/返回固定头部单元数据的对齐方式ColDataAyyay/Long为独立列设置/返回任意的值,以合在代码中通过这些值确定列ColHeaderArray/Enum定义每个BAND头部是否显示ColHeaderCaptionArray/Single定义每个BAND的列头部显示的文本ColIsVisibleARRAY/BOOLEN返回/设置某个列是否可见ColPosArray/Long返回某个给定列的左上角和网格左上角的距离ColpositionArray/Long设置网格列的位置ColsLong返回/设置网格的列数量ColSelArray/Long设置/返回某个范围单元的起始列ColWidthArray/Long设置/返回某个列的宽度ColWordWrapOption Array/Integer设置/返回网格的非固定单元是否允许WRAP ColWordWrapOptionBandArray/Integer定义网格的BAND是否允许WRAP ColWordWrapOptionFixedArray/Integer定义列的固定单元是否允许WRAP ColWordWrapOptionHeaderArray/Integer定义各头部是否允许WRAPDataFieldArray/Single一个独立列绑定的数据库字段FillStyleEnum定义改变文本或单元的其他属性是影响所有的选中单元还是只影响活动单元FixedColsLong设置/返回固定列的列数FixedRowsLong设置/返回固定行的行数FocusRectEnum定义控件对当前单元的焦点表示FontStdFont返回/设置默认字体或各单元使用的字体FontBandArray/StdFont设置/返回各BAND使用文本的字体FontFixedSingle设置/返回固定单元使用的字体FontHeader Array/StdFont设置/返回各头部使用的字体FontWidthSingle设置/返回默认字体宽度FontWidthBandArray/Single设置/返回BAND使用的字宽FontWidthFixedSingle设置/返回固定单元使用的字宽FontWidthHeaderArray/Single设置/返回每个头部使用的字宽ForeColrOle_Color设置/返回网格非固定单元使用的前景色ForeColorBandArray/Ole_Color设置/返回网格各BAND的前景色ForeColorFixedOle_Color设置/返回网格固定单元的前景色.ForeColorHeaderArray/Ole_Color设置/返回网格头部单元的前景色ForeColorSelOle_Color设置/返回设置单元的前景色FormatStringString定义一个格式串用来设置网格列的宽度,对齐方式,固定行文本固定列文本GridColorOle_Color设置/返回网格单元间的线的颜色GridColorBandArray/Ole_Color设置/返回网格BAND的线的颜色GridColorFixedOle_Color设置返回网格固定单元间的线的颜色GridColorHeaderArray/Ole_Color设置/返回网格头部间的线的颜色GridColorIndentOle_Color设置/返回网格INDENT单元间的线的颜色GridColorUnpopulatedOle_Color设置/返回网格UNPOPULATED区域间的颜色GrigLineEnum定义网格单元间的线的类型GrigLinesBandArray/Enum定义网格各BAND间的线的类型GrigLinesFixedEnum定义网格固定单元的线的类型GrigLinesHeaderArray/Enum定义网格各头部间的线的类型GrigLinesIndentArray/Enum定义网格INDENT单元间的线的类型GrigLinesUnpopulatedEnum定义网格UNPOPULATED区域间的线的类型GrigLinesWidthInteger设置/返回网格单元间的线的宽度GrigLinesWidthBandArray/Integer设置/返回网格各BAND间的线的宽度GrigLinesWidthFixedInteger设置/返回网格固定单元间的线的宽度GrigLinesWidthHeaderArray/Integer设置/返回网格各头间的线的宽度GrigLinesWidthIndentArray/Integer设置/返回网格INDENT单元间的线的宽度GrigLinesWidthUnpopulatedInteger设置/返回网格UNPOPULATED区域间的宽度HieghtEnum定义如何以及何时高亮度显示网格的选中单元LeftColLong网格最械的可见列MergeCellsEnum设置/返回一个值表明如何及何时将有相同内容的记录进行合并MergeColARRAY/BOOLEN设置/返回一个值表明哪些列可以将内容合并MergeRowARRAY/BOOLEN设置/返回一个值表明哪些行可以将内容合并MouseColLong返回鼠标光标的列坐标位置MouseRowLong返回鼠标光标的行坐标位置PictureStdPicture返回MSHFLEXGRID的控件快照PictureTypeEnum设置/返回PICTURE类型RedrawBoolean设置/返回一个值,表明MSHFLEXGRIDR控件是否在每个改变后重画RowLong设置/返回当前单元的垂直坐标RowDataArray/Long为各行设置/返回任意的值,以合在代码中通过这些值确定行RowExpandableBoolean定义当前行是否可以展开RowExpandedBoolean返回一个值表明当前行是否展开RowHeightArray/Long设置/返回各行的高度RowHeightMinLong设置/返回网格中行的最小高度RowIsVisibleARRAY/BOOLEN设置/返回一个值,表明某个特定列是否可见RowPosArray/Long返回给定行左上角和MSHFLEXGRID控件左上角的距离RowPositionArray/Long设置某个网格行的位置RowsLong返回网格的行的总数或者或BAND的行的总数RowSelLong设置/返回一个范围的单元的起始行RowSizingModeEnum设置/返回一个值表明对一行的设置是影响网格的所有行还是只影响被调整的行ScrollBarsEnum设置/返回一个值表明MSHFLEXGRID控件的滚动条类型ScrollTrackBoolean设置/返回一个值表明网格内容是在用户移动滚动条时随着改变还是滚动结束后改变SelectionModeEnum设置/返回一个值表明MFHFLEXGRID控件允许的选择类型.SortEnum根据某些村准备设置排序的值TextString设置/返回一个单元或一个范围内单元的文本内容TextArrayarray/string不改变ROW,COL属性,设置/返回任意单元的文本内容TextMatrixarray/string设置/返回某个选定行,列的单元的文本内容TextStyleEnum设置/返回网格通常单元的3D文本风格TextStyleBandArray/Enum设置/返回网格BAND的3D文本风格TextStyleFixedEnum设置/返回网格各固定行的3D文本风格TextStyleHeaderArray/Enum设置/返回网格各头部的3D文本风格TopRowLong设置/返回网格最上面的可见行VersionInteger返回正在使用MSHFLEXGRID控件的版本WordWrapBoolean定义当到达单元的边界时,网格的单元的内容是否WRAP2) MSFLEXGRID控件的重要方法方法说明AddItem向网格中加入一新行Clear清除网格中的内容ClearStructure清除网格的结构(映射信息)CollapseAll折叠网格的某个特定的所有行ExpandAll展开网格的某个特定的所有行RemoveItem从网格中清除一行方法AddItem和RemoveItem可以用来向网格中加入或删除行(BANDS).如果折叠或展开某个BAND的所有行,则可以使用COLLAPSEALL和EXPAANDALL方法.方法CLEAR可以清除网格中的内容,但不影响网格的行,列数,如果要清除网格的结构,包括顺序及网格各列的名称,应当使用ClearStructure方法.3) MSFELXGRID的控件的主要事件Collapse用户折叠了网格的一行Compare当SORT属性被设置为CUSTOMERSORT,允许用户定义排序过程EnterCell当一个新的单元成为当前活动单元时(获得)Expand用户展开了网格的一行LeaveCell当一个新单元成为当前活动单元前(离开)RowColChange当一个新单元成为当前活动单元时Scroll用户用键盘,滚动条滚动网格的内容或网格的内容由程序滚动时SelChangeEvent一个新范围内的单元被选中EnterCell, LeaveCell, RowColChange事件相互联系,因为它们都在当一个新单元成为当前活动单元时被激发,实际上这些事件的顺序是:LeaveCell, EnterCell然后是RowColChange. Collapse和Expand事件在用户折叠或者展开网格的一行(BAND)时被激发.属性ROW和COL 可以用来确定用户折叠或者展开的单元.当SORT属性设置为9时,对网格的每两行发生一次COMPARE事件,用户排序方法使你可以选择按照午任意列或单元对行排序.注意,使用这种排序方式的速度会慢于BUILD-IN排序.不论采用何种方式,只要对网格进行滚动时,SCROLL事件就会被激发.当SCROLLTRACK属性设置为TRUE时,如果用户用鼠标拖动或滚动时,该事件也被激发,如果SCROLLTRACK属性被设置为FALSE时,SCROLL事件只在拖动结束后激发一次.当选择单元格变化时, SelChangeEvent事件会被激发,对选择的单元范围的改变,可以通过用户操作或程序代码来实现.3应用举例在MSFLEXGRID控件中每一个CELL格的内容是不可以由用户直接编辑的但是我们可以通过一些小技巧来方便的实现这编辑功能来扩展MSFLEXGRID的应用(在实际应用中这是很常用的功能)。