shift只能选中相邻行啊!在线等待,立即给分
解决方案 »
- 自动关机的做法
- 这个也会溢出??
- 使用VB监视注册表的问题(看过chenhui530版主的代码有很多的疑问,现在急需解决啊)
- 100分求Excel中编写VB程序处理sheet中数据的方法
- 取oracle数据库中的整型数据为什么会报错?
- VB中怎么做那种一按就凹下去的按钮?还有用过TDBGrid7.0的朋友,怎么把表格线去掉?在线等!
- 急需求助,关于打包,在线等
- 我想做这样一个程序,能否给我一个思路。
- 紧急求助!!——请大家看看我这段DLL调用!!谢谢!
- VB中什么变量类型与 SQL SERVER 中的 BIT 类型相匹配
- activereport程序中设定字段
- 关于addnew将txt文本文件导入到oracle数据库中
在MSHFLEXGRID中多做一列.列宽为0.只记录选择标志.
当选择时该列置1.再单击时置0.
应用时只要检查为1列即可.
Dim dicA As New Scripting.Dictionary
Private Sub Command1_Click()
Dim intI As Integer
'为字典赋网格数据值
For intI = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1
dicA.Add MSFlexGrid1.TextMatrix(intI, 1), _
MSFlexGrid1.TextMatrix(intI, 2)
Next intI
'在立即窗口打印赋值结果
Debug.Print "主题词", "数值"
For Each Key In dicA.Keys
Debug.Print Key, dicA(Key)
Next
End Sub'保存文件
Private Sub Command2_Click()
Dim strFileName As String
'选择网格区域,从左上角到右下角的全部区域
MSFlexGrid1.Row = 1 '左上角的行
MSFlexGrid1.Col = 1 '左上角的列
MSFlexGrid1.RowSel = 10 '右下角的行
MSFlexGrid1.ColSel = 2 '右下角的列
'将选定的网格数据送入剪贴板
Clipboard.SetText MSFlexGrid1.Clip
strFileName = InputBox("键入路径和文件名")
Open strFileName For Output As #1
'将剪贴板中的数据写入文件
Write #1, MSFlexGrid1.Clip
Close #1
End Sub'打开已有文件,读文件
Private Sub Command3_Click()
Dim intL As Integer, intI As Integer
Dim strFileName As String
Dim strA As String, strB(1) As String
strFileName = InputBox("键入路径和文件名")
'打开文件
Open strFileName For Input As #1
'读文件
Do While Not EOF(1)
intL = intL + 1
Input #1, strB(intL)
Loop
'关闭文件
Close #1
For intI = 1 To intL
strA = strA & strB(intI)
Next intI
'将读入的文件送到剪贴板
Clipboard.SetText strA
'选择网格区域,从左上角到右下角的全部区域
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 1
MSFlexGrid1.RowSel = 10
MSFlexGrid1.ColSel = 2
'将剪贴板的数值粘贴到网格
MSFlexGrid1.Clip = Clipboard.GetText
End SubPrivate Sub Command4_Click()
Unload Me
End SubPrivate Sub Command5_Click()
'MsgBox MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
MSFlexGrid1.RowExpanded = False
MSFlexGrid1.SelectionMode = flexSelectionFree
End SubPrivate Sub Form_Load()
Dim intI As Integer
'设定网格的行数和列数
MSFlexGrid1.Cols = 3 '序号(固定列)+主题词+数值共3列
MSFlexGrid1.Rows = 11 '固定行+10个村庄共11行
'建立说明列
'属性MSFlexGrid1.FixedRows可设置或返回固定行总数,缺省为1
'属性MSFlexGrid1.TextArray可设置或返回网格文本的内容
For intI = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextArray(MSFlexGrid1.Cols * intI) = intI
Next intI
'建立说明行
'属性MSFlexGrid1.FixedCols可设置或返回固定列总数,缺省为1
For intI = MSFlexGrid1.FixedCols To MSFlexGrid1.Cols - 1
'将单元格的宽度增加100twip
MSFlexGrid1.ColWidth(intI) = MSFlexGrid1.ColWidth(intI) + 100
MSFlexGrid1.TextArray(intI) = "项目" & intI
Next intI
MSFlexGrid1.Row = 1 '设定当前行
MSFlexGrid1.Col = 1 '设定当前列
'将文本框放入左上角的单元格中
Text1.Move MSFlexGrid1.CellLeft + MSFlexGrid1.Left, _
MSFlexGrid1.CellTop + MSFlexGrid1.Top, MSFlexGrid1.CellWidth, _
MSFlexGrid1.CellHeight
Label1 = "对象1:项目1"
End Sub'用户选择编辑单元时,将该单元内容复制到文本框控件
'然后可以进行编辑
Private Sub MSFlexGrid1_EnterCell()
'将当前说明列和当前说明行赋予标签
Label1 = "对象" & MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0) _
& ":" & MSFlexGrid1.TextMatrix(0, MSFlexGrid1.Col)
'将当前单元格内容赋予文本框
Text1.Text = MSFlexGrid1.Text
' Text1.Visible = True
'将文本框放入被单击的单元格中
Text1.Move MSFlexGrid1.CellLeft + MSFlexGrid1.Left, _
MSFlexGrid1.CellTop + MSFlexGrid1.Top, MSFlexGrid1.CellWidth, _
MSFlexGrid1.CellHeight
Text1.SetFocus '文本框取得焦点
'选中文本框内的全部字符,即将其涂成蓝色
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub'文本框数据处理,按Enter键结束一个网格数据的录入
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim intRow As Integer, intCol As Integer
If KeyAscii = 13 Then '13为Enter键
MSFlexGrid1.Text = Text1.Text '文本框数据送入网格
intRow = MSFlexGrid1.Row + 1 '焦点移到同列的下一个单元
intCol = MSFlexGrid1.ColSel '单元格返回当前列
If intRow = MSFlexGrid1.Rows Then '如果到了最后一行
intRow = MSFlexGrid1.FixedCols 'intRow=1,FixedCols的缺省设置
'如果intCol没有到边界列则取下一列
If intCol < MSFlexGrid1.Cols - MSFlexGrid1.FixedCols Then _
intCol = intCol + 1
End If
MSFlexGrid1.Row = intRow '新的当前行
MSFlexGrid1.Col = intCol '新的当前列
MSFlexGrid1.RowSel = intRow '为单元格设置的当前行
Text1.Text = MSFlexGrid1.Text '单元格数据赋予文本框
'将文本框放入下一个单元格中
Text1.Move MSFlexGrid1.CellLeft + MSFlexGrid1.Left, _
MSFlexGrid1.CellTop + MSFlexGrid1.Top, MSFlexGrid1.CellWidth, _
MSFlexGrid1.CellHeight
Text1.SetFocus '文本框取得焦点
End If
End Sub