在敲机房时,遇到这样一个问题,要删除MSHFlexGrid控件中某行的记录,在选择之前,做的就是先选中要删除的行。下面是我在操作是遇到的问题.
一.操作方法
1.属性中设置(三者缺一不可)
右击该MSHFlexGrid控件,选择属性,设置其中的属性,如下:
但效果是改行的第一个单元格没被选中,不变色,原因是我把固定列设置成了:1
固定列或行的作用:缺省设定为,MSHFlexGrid 有一个固定列和一个固定行,当在 MSHFlexGrid 中滚动其它列或行时,固定的列和行是固定不变的。可以指定零个或多个固定的列行。自我认为:固定行不受设置影响,所以上面所提到的设置对第一列不起作用。
2.属性窗口设置
找到对应的属性,该为想要的(照上图或下图中的属性该)即可
3.代码中设
二.相关知识adddelFlexGrid.SelectionMode = flexSelectionByRow '选中该整行
anadddelFlexGrid.FocusRect = flexFocusNone '选中行显示焦点区域</span>
adddelFlexGrid.Highlight=flexHighlightWithFocus '选中行突出显示
1.删除选中行
<pre name="code" class="vb" style="background-color: rgb(255, 255, 255);">Private Sub Form_Load() adddelFlexGrid.SelectionMode = flexSelectionByRow '设置MSHFlexGrid1的选择方式是按行选择 HaveSelected = False '设置标志,防止没选择就删除 End Sub
Private Sub adddelFlexGrid_Click() HaveSelected = True n = adddelFlexGrid.RowSel End Sub
Private Sub cmddelete_Click() '在对应表中删除该用户 txtSQL = "delete from user_info where userid='" & adddelFlexGrid.TextMatrix(n, 0) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) adddelFlexGrid.RemoveItem adddelFlexGrid.RowSel '删除选中的行 End Sub
注意:摁住Shift键可选中连续的多行
2.属性区分
1>行或列
rows :所有行 cols:所有列
rowsel:所在行在表格中是第几行 cols:所在行在表格中第几列
2>颜色
backcolor:背景色,即单元格的背景色
backcolorbkg:控件的背景
backcolorFiexd:选择单元格的背景色
设置如下:
backcolor:&H0080FFFF&黄色
backcolorbkg:&H000000FF&红色
backcolorSel:&H8000000D&蓝色
效果如下: