vsflexgrid8 怎么移动行

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
VSFlexgrid、MSFlexGrid控件的技术问题&  1,如果想把某一列设置成下拉框中选择,只能写成 grid.colcombolist(1) = "a|b|c" 吗?能不能把下拉框中的数据和 recordset 或数组绑定。  答案:grid.colcombolist(1)=grid.buildcombolist(rs!abc)  2,怎样限定第三列可编辑,其他列不可编辑?  答案:Private Sub fg_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)&&'*******先将设editable=2&&'限定不可编辑列,如有5列&&If Col = 0 Then Cancel = True&&If Col = 1 Then Cancel = True&&If Col = 2 Then Cancel = True&&If Col = 4 Then Cancel = True&&If Col = 5 Then Cancel = TrueEnd Sub  3、怎么获得当前单元个的位置,比如某单元个获得焦点,弹出msgbox("你选的是第4行第5列")  Answer:Private Sub VSFlexGrid1_Click()&& &Dim a, b As Long&& & & &a = VSFlexGrid1.Row&& & & &b = VSFlexGrid1.Col   & &MsgBox "你选的是" & a & "行" & b & "列"End Sub  4,对vsflexgrid进行编辑的时候,让vsflexgrid的某列只能输入数字?Answer:Private Sub CheckData(KeyAscii As Integer)&& If KeyAscii &= 48 And KeyAscii &= 57 Then Exit Sub '如果是数字退出&& If KeyAscii && 8 Then KeyAscii = 0End Sub  Private Sub vsflexgrid_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)&& If col=1 &Then & &'第一列只能输入数字&& & &CheckData KeyAscii&& End IfEnd Sub  5,限制某列只能输入数字  Answer:Private Sub fg_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)Dim Numbers As String & & & &'允许输入的字符  If fg.Col = 6 Then & &'第6列&&Numbers = "" + Chr(46) + Chr(8)&&If InStr(Numbers, Chr(KeyAscii)) = 0 Then&& &KeyAscii = 0&&End IfEnd If  End Sub  6,如何指定一列的输入格式&  例如:显示有小数点后3位(是整数的话显示.000;没有达到3位显示.200(追加0);超过的4舍五入)  例如:显示有小数点后3位(是整数的话显示.000;没有达到3位显示.200(追加0);超过的4舍五入)  Answer:  if fg.col=5 then & & '第五行&&for i=1 to fg.rows-1&& & & & &fg.TextMatrix(i,5)=format(fg.TextMatrix(i,5),"##0.000")&&next iend if  7,在一个单元格输入好数字回车,下一单元格(或者下一行第一个)自动获得焦点。&  这个怎么实现?  这个怎么实现?  Answer:试试这个,,,,,' & &With fg' & & & &If .Col = .Cols - 1 Then' & & & & & &'如果到了最右边的列就跳到下一行第一个可非固定列' & & & & & &'.Row = Row + 1' & & & & & &.Col = .FixedCols' & & & &Else' & & & & & &'向右移动一列' & & & & & &.Col = Col + 1' & & & &End If' & &End With  8,最下面的合计的那一行是怎么加的??希望楼主指点一下,谢谢!  Ansewr:合计行添加代码:'*****************************************'显示计算合计行.Rows = .Rows + 1&& &Dim r&, c&, tot!   & &For c = 1 To .Cols - 1&& & & &tot = 0&& & & &For r = 1 To .Rows - 2&& & & & & &tot = tot + .valueMatrix(r, c)&& & & &Next&& & & &.TextMatrix(r, c) = tot&& &Next  '*****************,'在合计头列标明合计,合并单元格' & & & &For I = 0 To 1&& & & & & &.TextMatrix(.Rows - 1, 0) = "合 &计"' & & & & & &.FixedAlignment(I) = 4' & & & &Next&& & & &.MergeCells = flexMergeFixedOnly&& & & &.MergeRow(r) = True  9,怎么样点击一条VSFlexgrid控件里的记录时下面的TEXT控件就显示相应的内容?  Ansewr:text1=fg.TextMatrix(fg.RowSel, 2) & '显示第二列信  10,如果想把某一列设置成下拉匡中选择,只能写成 grid.colcombolist(1) = "a|b|c" 吗?能不能把下拉框中的数据和 recordset 或数组绑定。Answer:grid.colcombolist(1)=grid.buildcombolist(rs!abc)  11,我用的是VsFlexGrid 8如何把表格里面的Name变成我指定的文字,以前用的是DataGrid,实现的方法是DataGrid1.Columns.Caption="名字"现在学用VsFlexGrid,请高手指点.Answer:我来了,这段时间实在太忙了,,,没能及时回答大家的问题,,,,指定name可以这样表示:vfg.TextMatrix(0,1)="我的名字"  12,如何让我选择的不是一个框,而是一整行,还有就是如何能把我选择的这一行的第一个框里的字添加到text1.text里.Answer:  1,有一个属性可以让你的选择是一行的.SelectionMode=1  2,text1=fg.TextMatrix(fg.RowSel,1)在click事件里实现  13,运行时如何调整调行或列宽度?Answer:AllowUserResizing=1 &'可调列AllowUserResizing=2 &'可调行AllowUserResizing=3 &'可调行和列  最近很多朋友问我关于VSflexgrid的问题,,,由于我很忙,没能及时回答,请多谅解;特此,我找来了一些资料,供大家参考:VSFLEXgrid控件概况】&  [主要特点]&VSFlexGrid Pro 7.0 是一功能强大的数据表格控件,高速、紧凑、灵活、轻便、无须依赖任何应用工具,支持数据化格式选项,能将表格列连接到图象列和墙纸属性上以提高应用工具的实现程度。如果应用工具无须数据库的支持,如果你的应用程序不需要数据库的支持,那么使用VSFlexGrid Pro新的非绑定版本可以使应用程序的尺寸最小,而且发布应用程序时也不需要发布相应的ADO动态链接库. VSFlexGrid Pro 7.0可代替任何简单的列表框,浏览器,记事本等等,所以说它不仅仅只是一个表格控件。&  FLexArray网格扩展控件&能够设置每个单元格的颜色和字体/能够对单元内容能进行快速有效的排序/设置RowPosition和ColPosition属性,即可在运行状态移动行列的位置/使用MergeCell属性,无须改写代码即可将内容一致的单元格加以合并/能够在设计过程定义行列的页眉、宽度和位置,进行界面设计/改变缺省字体大小,能够自动调整与之相对应的单元格尺寸/支持2000行以上表格,单元格内容可达32k以上/能够进行行列的隐藏/能够进行字体的微调整(参考FontWidth属性)/具有多种多样的网格形式和色彩/支持图文混排/多种光标和被选择内容的显示方式等等。&  FlexString字符串处理控件&能够设定检索字符串与置换字符串, 在表格中找到与检索字符串相符的字符并将其置换为置换字符串中设置的字符/可以将检索字符串分成几个字段,给每个字段加入标签,使用标签代替字符串进行检索与置换/使用规范化表达式,规范化表达式是一个设定和匹配字符串的注释,类似于数学公式里的运算符。&  [功能]&最新功能 &&提供了丰富的功能可以迅速创建灵活、功能强大的前端,无须用户额外支出。VSFlexGrid Pro 7.0 100%向下兼容VB环境下的MSFlexGrid,所以对于目前的版本升级非常容易。&  提供的新功能可显示、模块编辑、格式化、组织、概括、打印表格数据。数据可以按条件初始化,对于超出指定范围的数据会加强表示。可用户化输入网格和单个单元外观几乎所有的方面,并利用相似值合并邻近单元,使得表格更容易读取分析。&  支持ADO和OLE DB&  VSFlexGrid Pro支持ADO和OLE DB,支持统一的字符编码以及DAO数据的 存取,提供多重数据连接的选择。 ADO/OLEDB、DAO可连接到二维、三维 数组或其他VSFlexGrid控件,用户也可创建用户自己的数据源类。甚至可以 在无界模式中使用表格,或将表格连接到变量数组及一用户可自己开发的数据 源。&  完整的打印功能&可以保存、检索多张表格和打印格式。最新的PrintGrid方法可让用户打印单 条语句,能够控制纸张定位、页边、文本字体,显示一对话框让用户选择设 置打印机。同时也可控制页中断,添加表头,并在每一页上添加用户单元。&  支持分层数据&可进行排序, 模块编辑,转化组合框和图表框和自动数据聚合。甚至可使用 VSFlexGrid Pro 分级显示数据。类似于树形控件,通过显示删除或扩张的结点 用来表示含有附加数据的分支。分级显示树可在任一列中出现,甚至可出现 在异步分支上。分级显示树的外观可用NodeOpenPicture 和NodeClosedPicture 的属性用户化。&  更简单的版本&如果用户的应用工具无须数据库的支持,VSFlexGrid Pro包含了表格控件更简 单的版本。使用VSFlexGrid Pro新的非绑定版本可以使应用程序的尺寸最小, 发布应用程序时也不需要发布相应的ADO动态链接库.消除了DLL版本的问题。&   &其他功能&合并单元&VSFlexGrid控件允许跨越多重行与列合并值相同的邻近单元。提高了数据在表 格中显示,提高了数据的读取和分析。单元合并可用于创建合并的图表表头、 合并的数据视图,以及创建能将文本溢出到相邻列的表格。&  屏蔽模块&输入模板可说明自动控件以及有效数据的输入,减少了数据输入的错误。模块 语法类似于Microsoft MaskedEdit 控件和 Microsoft Access中的模块语法。Component One Vs-Flex Grid pro 7.0  VB标准网络控件和文本控件的扩展版本:7.0标准价格:41,300.00 元使用权限:发布免费  近期推出Videosoft公司一款全新的ActiveX控件---VSFlexGridPro7.0。 VSFlexGrid Pro 7.0 是一功能强大 的数据表格控件,高速、紧凑、灵活、轻便、无须依赖任何应用工具,支持数据化格式选项,能将表格列连接到图象列和墙纸属性上以提高应用工具的实现程度。如果应用工具无须数据库的支持,如果你的应用程序不需要数据库的支持,那么使用VSFlexGrid Pro新的非绑定版本可以使应用程序的尺寸最小,而且发布应用程序时也不需要发布相应的ADO动态链接库. VSFlexGrid Pro 7.0可代替任何简单的列表框,浏览器,记事本等等,所以说它不仅仅只是一个表格控件。&  [主要特点]FLexArray网格扩展控件&能够设置每个单元格的颜色和字体/能够对单元内容能进行快速有效的排序/设置RowPosition和ColPosition属性,即可在运行状态移动行列的位置/使用MergeCell属性,无须改写代码即可将内容一致的单元格加以合并/能够在设计过程定义行列的页眉、宽度和位置,进行界面设计/改变缺省字体大小,能够自动调整与之相对应的单元格尺寸/支持2000行以上表格,单元格内容可达32k以上/能够进行行列的隐藏/能够进行字体的微调整(参考FontWidth属性)/具有多种多样的网格形式和色彩/支持图文混排/多种光标和被选择内容的显示方式等等&FlexString字符串处理控件&能够设定检索字符串与置换字符串, 在表格中找到与检索字符串相符的字符并将其置换为置换字符串中设置的字符/可以将检索字符串分成几个字段,给每个字段加入标签,使用标签代替字符串进行检索与置换/使用规范化表达式,规范化表达式是一个设定和匹配字符串的注释,类似于数学公式里的运算符。&  [新特性]最新功能提供了丰富的功能可以迅速创建灵活、功能强大的前端,无须用户额外支出。VSFlexGrid Pro 7.0 100%向下兼容VB环境下的MSFlexGrid,所以对于目前的版本升级非常容易。  提供的新功能可显示、模块编辑、格式化、组织、概括、打印表格数据。数据可以按条件初始化,对于超出指定范围的数据会加强表示。可用户化输入网格和单个单元外观几乎所有的方面,并利用相似值合并邻近单元,使得表格更容易读取分析。  支持ADO和OLE DB  VSFlexGrid Pro支持ADO和OLE DB,支持统一的字符编码以及DAO数据的 存取,提供多重数据连接的选择。 ADO/OLEDB、DAO可连接到二维、三维 数组或其他VSFlexGrid控件,用户也可创建用户自己的数据源类。甚至可以 在无界模式中使用表格,或将表格连接到变量数组及一用户可自己开发的数据 源。  完整的打印功能可以保存、检索多张表格和打印格式。最新的PrintGrid方法可让用户打印单 条语句,能够控制纸张定位、页边、文本字体,显示一对话框让用户选择设 置打印机。同时也可控制页中断,添加表头,并在每一页上添加用户单元。&  支持分层数据可进行排序, 模块编辑,转化组合框和图表框和自动数据聚合。甚至可使用 VSFlexGrid Pro 分级显示数据。类似于树形控件,通过显示删除或扩张的结点 用来表示含有附加数据的分支。分级显示树可在任一列中出现,甚至可出现 在异步分支上。分级显示树的外观可用NodeOpenPicture 和NodeClosedPicture 的属性用户化。  更简单的版本如果用户的应用工具无须数据库的支持,VSFlexGrid Pro包含了表格控件更简 单的版本。使用VSFlexGrid Pro新的非绑定版本可以使应用程序的尺寸最小, 发布应用程序时也不需要发布相应的ADO动态链接库.消除了DLL版本的问题。&  其他功能&合并单元VSFlexGrid控件允许跨越多重行与列合并值相同的邻近单元。提高了数据在表 格中显示,提高了数据的读取和分析。单元合并可用于创建合并的图表表头、 合并的数据视图,以及创建能将文本溢出到相邻列的表格。&  屏蔽模块输入模板可说明自动控件以及有效数据的输入,减少了数据输入的错误。模块 语法类似于Microsoft MaskedEdit 控件和 Microsoft Access中的模块语法&  [控件属性一览表]FlexString控件属性一览表&Error失败时取得错误信息&MatchCount取得与检索条件相一致的字符串数量MatchIndex设定与检索条件相一致的字符串的索引MatchLength取得与检索条件相一致的字符串长度MatchStart取得与检索条件相一致的字符串起始位置MatchString取得与检索条件相一致的字符串Pattern 设定检索条件Replace设定置换字符串SoundexText取得代表当前检索字符的声音代码TagCount取得与检索条件相一致的标签数量TagIndex在多个标签情况下,设定/取得与检索条件相一致的标签索引TagLength取得与检索条件相一致的标签长度TagStart取得与检索条件相一致的标签起始位置TagString取得与检索条件相一致的标签的字符串&Text设定成为检索对象&Version取得FlexString的版本号  FlexString控件属性一览表&AllowBigSelection设定行列头的选择AllowUserResizing设定行列大小的设定BackColor设定FlexArray所有表格的背景颜色BackColorBkg设定背景颜色BackColorFixed设定固定行/列的背景颜色BackColorSel设定选择单元的背景颜色CellAlignment设定单元里数据的排列方式CellBackColor设定单元或指定范围的背景颜色&CellFontBold把单元或指定范围的字体设定为黑体字&CellFontItalic把单元或指定范围的字体设定为斜体字&CellFontName设定单元或指定范围的字体CellFontSize设定单元或指定范围字体的大小CellFontWidth设定单元或指定范围字体的宽度CellForeColor设定单元或指定范围字体的颜色CellHeight返回当前单元的高度CellLeft返回当前单元的左端位置CellTop返回当前单元的顶端位置CellWidth返回当前单元的宽度CellPicture指定显示在单元或指定范围中的图片CellPictureAlingment指定单元或范围中图片的显示位置CellTextStyle设定单元文本的显示形式Clip&设定/返回选择范围的内容Col设定/返回激活单元的列号ColAlingment( )设定/返回列的排列方式ColData( )设定/返回一个用户定义信息的长整形数据ColPosition( )移动列的位置Cols指定返回列的总数ColSel指定选择范ColWidth( )设定所指定列的宽度FillStyle指定是否改变当前单元或选择范围的内容或单元格式&FixedCols设定固定列的总数FixedRows设定固定行的总数FocusRect设定选中单元周围的Focus Rectangle类型FontWidth设定字体的宽度ForeColorFixed设定固定单元的文本颜色ForeColorSel设定选择单元的文本颜色FormatString在设计过程中设定列宽、排列方式及固定的行/列&GridColor指定网格线的颜色GridColorFixed设定固定网格线的颜色GridLines指定网格线的类型GridLinesFixed指定固定单元的网格线形式HighLight设定是否突出显示选中单元LeftCol指定显示在最左边的列MergeCells设定是否合并内容相同的单元格MergeCol( )设定指定列的单元合并MergeRow( )设定指定行的单元合并MouseCol设定鼠标指向的列号MouseRow设定鼠标指向的行号ReDraw设定是否刷新FlexArray控件Picture返回FlexArray控件的图片PictureType指定用Picture属性生成的图片类型Row设定/返回激活单元的行号RowData( )设定/返回一个用户定义信息的长整形数据RowHeight( )设定指定行的高度RowHeightMin设定行高的最小值RowPosition( )移动行的位置Rows指定行的总数RowSel指定行的选择范围SelectionMode设定行、列或单元的选择方式ScrollBars设定卷动轴的类型ScrollTrack设定卷动方式Sort按照选择的基准重新排列行的顺序Text设定/取得单元的文本TextArray( )设定/取得任意单元的文本TextMatrix( )设定/取得任意单元的文本TextStyle显示单元中文本的3D效果TextStyleFixed显示固定行/列中文本的3D效果TopRow指定显示在最上面的行&VersionFlexArray控件的版本号WordWrap设定单元中的文本是否换行  VSflexgrid的破解方法注册方法:编辑注册表HKEY_CLASSES_ROOT\Licenses\403E-11d3-9BD5-D2DC2DD96072  听过vsview7.0没有?这是破解方法,只需要在注册表里建立三个键就可以.如下:REGEDIT4&VSVIEW 7[HKEY_CLASSES_ROOT\Licenses\F4-11d3-9A1F-AE842F4A083B]&@=""&[HKEY_CLASSES_ROOT\Licenses\F403E-11d3-9BD5-D2DC2DD96072]&@=""&[HKEY_CLASSES_ROOT\Licenses\403E-11d3-9BD5-D2DC2DD96072]&@=""&  在vsflexgrid中单元格输入完毕后,设置按回车键跳到同一行的下一个单元  Private Sub VSFlexGrid1_AfterEdit(ByVal Row As Long, ByVal Col As Long)&& &With VSFlexGrid1&& & & &If .Col = .Cols - 1 Then&& & & & & &'如果到了最右边的列就跳到下一行第一个可非固定列&& & & & & &.Row = Row + 1&& & & & & &.Col = .FixedCols&& & & &Else&& & & & & &'向右移动一列&& & & & & &.Col = Col + 1&& & & &End If&& &End WithEnd Sub  vsflexGrid 如何只能让某些特定列可编辑  '修改前看到是否需要修改Private Sub Grid_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)'On Error GoTo err   & &If UiI10101.valueInt & 2 Then & & & & & '*************定义允许修改的状态,需修改&& & & &Cancel = True&& & & &Exit Sub&& &End If&& &If Grid.Col = Grid.cols - 8 Or Grid.Col = Grid.cols - 7 Then & & & &'*************定义可以修改的列,需修改&& & & &Cancel = False & & &'使其有效&& &Else&& & & &Cancel = True & & & '使其无效为真&& &End If&& &Exit SubErr:&& &RaiseErr "frmY005-Grid_MouseDown()"End Sub  '修改后判断是否合法'cancel=true 取消修改的Private Sub Grid_ValidateEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)On Error Resume Next&& &If Not IsNumeric(Grid.EditText) Then&& & & &MsgBox "输入不合法,应输入一个数值", vbInformation, "提示"&& & & &Cancel = True&& & & &Exit Sub&& & End If&&&End Sub  '修改后来更改别的一些数据Private Sub Grid_AfterEdit(ByVal Row As Long, ByVal Col As Long)On Error Resume Next'进货数量=包装数量 * 整装数量 + 零装数量&& &Grid.TextMatrix(Row, Grid.cols - 6) = Grid.TextMatrix(Row, Grid.cols - 9) * Grid.TextMatrix(Row, Grid.cols - 8) + Grid.TextMatrix(Row, Grid.cols - 7)  End Sub  VSFLEXGRID7 中文输入法自动关闭问题提示  同种数据类型的单元格之间变换不要重启输入法.....还有可以看看这代码Private Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, _&& & & &lpList As Long) As LongPrivate Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" _&& & & &(ByVal pwszKLID As String) As LongPrivate Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As LongPrivate Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" (ByVal _&& & & &hkl As Long, ByVal lpsz As String, ByVal uBufLen As Long) As LongPrivate Declare Function ActivateKeyboardLayout Lib "user32" (ByVal hkl As Long, ByVal _&& & & &flags As Long) As Long&& & & &Const IME_CONFIG_GENERAL = 1Const KLF_REORDER = &H8Const KLF_ACTIVATE = &H1  Dim la(1 To 16) As Long & & & & & '输入法列表Dim ActIme As Long & & & & & & & &'当前输入法Dim X% & & & & & & & & & & & & & &'当单前输入法数量  Private Sub Form_Load()&& X = GetKeyboardLayoutList(32, la(1))end sub  Private Sub vs1_AfterEdit(ByVal Row As Long, ByVal Col As long) & & 'vsflexgrid 控件存在输入问题? 以下为避免方法Dim colNumber As LongDim i As LongDim strName$if col=1 then&&&ActivateKeyboardLayout la(1), 1else&&ActivateKeyboardLayout la(2), 2end ifend Sub  用.AddItem在最后一行显示数据Rst_Hj.Open HjSQL, Cnn_Zl, adOpenDynamic, adLockOptimistic & &'RST_hj是合计的记录集Main_YX.VSFlexGrid1.AddItem vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & "合计" & vbTab & Rst_Hj.Fields(0) & vbTab & Rst_Hj.Fields(1) & vbTab & Rst_Hj.Fields(2) & vbTab & Rst_Hj.Fields(3) & & &'VBTAB是跳过一格填写Rst_Hj.Close  '删除连续选择的记录If VSFlexGrid1.Row && -1 And VSFlexGrid1.RowSel && -1 Then&& msg = MsgBox("你真的要删除这些记录吗?", vbYesNo + vbQuestion)&& Select Case msg&& &Case vbYes&& & &For I = VSFlexGrid1.Row To VSFlexGrid1.RowSel&& & & &Str = Str + VSFlexGrid1.TextMatrix(I, 1) + ","&& & &Next&& & &Str = Mid(Str, 1, Len(Str) - 1)&& & &Cmd_Zl.ActiveConnection = Cnn_Zl&& & &mandText = "delete from zlk where 序号 in (" + Str + ")"&& & &Cmd_Zl.Execute&& & &Set Cmd_Zl = Nothing&& &Case vbNo&& & & Command6.Enabled = True&& & & Rst_Zl.Close&& & & Exit Sub&& &End SelectElse&& &MsgBox "请选择您要删除的记录!!!", vbExclamation&& &Exit SubEnd If这是用vsprinter打印vsflexgrid内容的例子,你可做参考。页面设置的功能我也正在查找,如果找到肯定共享。With VSPrinter1&& & & &'设置表头,创建打印文档&& & & &.Header = "|" & strTitle & vbCrLf & "|Page %d " '显示Page n功能&& & & &&& & & &.StartDoc&& & & &.Zoom = 100'显示比例&& & & &.RenderControl = vsFlexGrid1.Hwnd'把网格内容传递给vsView显示&& & & &.EndDoc&& &End With  有谁知道vsflexgrid1.PrintGrid命令参数怎么用?附上原英文帮助,有谁看懂了请解释一下好吗!Prints the grid on the printer.Syntax & &&[form!]VSFlexGrid.PrintGrid [ DocName As String ], [ ShowDialog As Boolean ], [ Orientation As Integer ], [ MarginLR As Long ], [ MarginTB As Long ]Remarks & &The parameters for the PrintGrid method are described below:  DocName As String &(optional)Contains the name of the document being printed. This string appears in the printer window's job list and is also used as a footer.  ShowDialog As Variant &(optional, default value = False)If set to True, a printer selection/setup dialog is displayed before the document start printing. The user can then select which printer to use, page orientation etc.  Orientation As Variant &(optional, default value = printer default)Set this parameter to 1 to print the grid in Portrait mode, or set it to 2 to print the grid in Landscape mode. The default setting, zero, uses the default printer orientation.  MarginLR As Variant &(optional, default value = 1440)Left and right margins, in twips. The margins must be equal. The default value, 1440, corresponds to a one-inch margin.  MarginTB As Variant &(optional)Top and bottom margins, in twips. The margins must be equal. The default value, 1440, corresponds to a one-inch margin.  The grid is printed using the same fonts used to display it on the screen, so to achieve best results, make sure the grid's Font property is set to a TrueType font (such as Arial, Times New Roman, Tahoma, or Verdana).  While printing the grid, the control fires the BeforePageBreak and GetHeaderRow events. These events allow you to control page breaks and setup repeating headers.  The PrintGrid method prints the entire grid, possibly spilling across and down to new pages. To print only a part of the grid, hide to rows and columns you don't want to print, call the PrintGrid method, and restore the hidden rows and columns when you are done.  The code below shows how you can do this:   & &Private Sub PrintSelection(fg As VSFlexGrid, Row1&, Col1&, Row2&, Col2&)&& &&& & & &' save current settings&& & & &Dim hl%, tr&, lc&, rd%&& & & &hl = fg.HighLight: tr = fg.TopRow: lc = fg.LeftCol: rd = fg.Redraw&& & & &fg.HighLight = 0&& & & &fg.Redraw = flexRDNone&& &&& & & &' hide non-selected rows and columns&& & & &Dim i&&& & & &For i = fg.FixedRows To fg.Rows - 1&& & & & & &If i & Row1 Or i & Row2 Then fg.RowHidden(i) = True&& & & &Next&& & & &For i = fg.FixedCols To fg.Cols - 1&& & & & & &If i & Col1 Or i & Col2 Then fg.ColHidden(i) = True&& & & &Next&& &&& & & &' scroll to top left corner&& & & &fg.TopRow = fg.FixedRows&& & & &fg.LeftCol = fg.FixedCols&& &&& & & &' print visible area&& & & &fg.PrintGrid&& &&& & & &' restore control&& & & &fg.RowHidden(-1) = False&& & & &fg.ColHidden(-1) = False&& & & &fg.TopRow = tr: fg.LeftCol = lc: fg.HighLight = hl&& & & &fg.Redraw = rd&& &End Sub  960521,提供的“如何设置vsflexgrid某行背景色”:   & &VSFlexGrid1.Cell(flexcpBackColor, row1, col1,row2, col2) = vbRed  例:设置第三行北景色为红&& &VSFlexGrid1.Cell(flexcpBackColor, 3, 1, 3, VSFlexGrid1.Cols - 1) = vbRed    当 MergeCells 被设置为除 0 (不显示)以外的一个值时,突出显示的选择自动关闭。这样做是为加速重画,也是因为包含合并单元范围的选择可能导致不可预料的结果。&  **********************************  MergeCol、MergeRow 属性  返回或设置一个值,决定哪些行和列可以把它们的内容合并。要使用 MergeCells 属性,这些属性必须为 True。  语法  object.MergeCol(number) [=Boolean]object.MergeRow(number) [=Boolean]  MergeCol 和 MergeRows 属性的语法包含如下部分:  部分 描述&Object 一个对象表达式,其值为“应用于”列表中的一个对象。&number 一个 Long值,指定 MSHFlexGrid 中的列或行。&Boolean 一个 Boolean值,指定当相邻单元显示相同内容时合并是否发生。&  设置值  Boolean 的设置值如下所示:  部分 描述&True 当相邻单元显示相同内容时,行向左合并或列向上合并。&False 当相邻单元显示相同内容时,单元不合并。这是 MergeCol 和 MergeRow 缺省设置值。&  说明  如果 MergeCells 属性被设置为非零值,具有相同值的相邻单元,只有它们都在一行并且 MergeRow 属性被设置为 True,或都在一列且 MergeCol 属性被设置为 True 时才合并。  ***********************************************************  例子:  不合并&MergeCells =0MergeRow(0) =TrueMergeRow(1) =TrueMergeRow(2) =TrueMergeRow(3) =False这是标准视图。自由合并&MergeCells =1MergeRow(0) =TrueMergeRow(1) =TrueMergeRow(2) =TrueMergeRow(3) =False注意第三个 employee 单元 (Donna) 如何合并它左边的 products 和它右边的 sales。限制合并&MergeCells =2MergeRow(0) =TrueMergeRow(1) =TrueMergeRow(2) =TrueMergeRow(3) =False注意第三个 employee 单元 (Donna) 不再合并 sales。  用VSFlexGrid做的目录树遍历,就像TreeView!Sub DirTree(fdRoot As Folder, outText As String)Dim fd As Folder, subFds As Folders' Dim Fi As file, Fis As FilesSet subFds = fdRoot.SubFoldersmLevel = mLevel + 1For Each fd In subFdsfg.AddItem fd.Name & vbTab & Format$(ByteToKB(fd.Size), "#,###")fg.IsSubtotal(fg.Rows - 1) = Truefg.RowOutlineLevel(fg.Rows - 1) = mLevel - 1&  '遍历文件(如果有需要)' Set Fis = fd.Files' For Each Fi In Fis' outText = outText & String(mLevel * 2, " ") & " " & Fi.Name & vbCrLf' NextIf fd.SubFolders.Count ThenDirTree fd, outTextEnd IfNextmLevel = mLevel - 1End Sub  如何指定一列的输入格式&  例如:显示有小数点后3位(是整数的话显示.000;没有达到3位显示.200(追加0);超过的4舍五入)    if fg.col=5 then '第五行for i=1 to fg.rows-1fg.TextMatrix(i,5)=format(fg.TextMatrix(i,5),"##0.000")next iend if  Private Sub fillup_Click() '向上填充Dim i As IntegerDim j As LongDim k As LongDim m As LongDim n As LongVF.GetSelection j, k, m, nFor i = j To m ' VF.RowSelVF.TextMatrix(i, VF.Col) = VF.TextNext i  End Sub
阅读(2653)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_082',
blogTitle:'[VB]VSFlexgrid、MSFlexGrid控件的技术问题',
blogAbstract:'VSFlexgrid、MSFlexGrid控件的技术问题&  1,如果想把某一列设置成下拉框中选择,只能写成 grid.colcombolist(1) = \"a|b|c\" 吗?能不能把下拉框中的数据和 recordset 或数组绑定。  答案:grid.colcombolist(1)=grid.buildcombolist(rs!abc)  2,怎样限定第三列可编辑,其他列不可编辑?  答案:Private Sub fg_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)&&\'*******先将设editable=2',
blogTag:'vsflexgrid,msflexgrid',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:1,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 vsflexgrid 的文章

 

随机推荐