mshflexgrid本身不能输入数据,要输入数据,可以添加一个textbox控件,在mshflexgrid的rowcochange事件中添加代码移动textbox控件使其和当前单元格重合(遮住当前单元格),并将当前单元格内容拷贝到textbox控件,然后在textbox控件中编辑,在textbox的change事件中,将数据回写回单元格。
合并数据:MSHFlexGrid1.MergeCells = xxx
这样,如果相邻行或列的数据如果相同,则和起来显示
xxx值,具体为
flexMergeNever 0 不显示。包含相同内容的单元不分组。这是缺省设置。
flexMergeFree 1 自由。包含相同内容的单元总是合并。
flexMergeRestrictRows 2 限制行。只有行中包含相同内容的相邻单元(向当前单元左边)才合并。
flexMergeRestrictColumns 3 限制列。只有列中包含相同内容的相邻单元(向当前单元上方)才合并。
flexMergeRestrictBoth 4 限制行和列。只有在行中(向左)或在列中(向上)包含相同内容的单元才合并。
------解决方案--------------------------------------------------------
不然,你就处理keypress事件
------解决方案--------------------------------------------------------
在含msflexgrid的窗口中新建一个文本框,大小和msflexgrid的单元格一样大msflexgrid的单击事件添加
text1.visible=true
text1.setfocus
下面是我做的一个过程代码,加入工程的一个模块中,就可以用了
Public Sub MsgridEdit(ByVal TxtName As TextBox, ByVal MsGridName As MSFlexGrid)
MsGridName.TextMatrix(MsGridName.Row, MsGridName.Col) = TxtName.Text
MsGridName.SetFocus
TxtName.Visible = False
End Sub
注:调用方法:在含msflexgrid的窗口中新建一个文本框,大小和msflexgrid的单元格一样大,需要调用时TxtName指文本框的名字,MsGridName指msflexgrid的名字
这个控件时vb自带的,在控件栏上点鼠标右键,选【部件...】,再找到【microsofthierarchical
flexgrid
control】并选中,控件栏上就有了!用法介绍这样获得:往窗体中拖一个刚才新增加的mshflexgrid控件,在这个表格控件按f1,如果你装了msdn的话,就能看到详细介绍了。注意mshflexgrid不等于msflexgrid
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)