vb中mshflexgrid中单元格输入数字,该如何处理

vb中mshflexgrid中单元格输入数字,该如何处理,第1张

------解决方案--------------------------------------------------------

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自带的,在控件栏上点鼠标右键,选【部件...】,再找到【microsoft

hierarchical

flexgrid

control】并选中,控件栏上就有了!用法介绍这样获得:往窗体中拖一个刚才新增加的mshflexgrid控件,在这个表格控件按f1,如果你装了msdn的话,就能看到详细介绍了。注意mshflexgrid不等于msflexgrid


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11463349.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存