一般VB作界面大多属于以下几种情况:控件分开布局,不重叠;使用SSTAB控件分开重叠的控件;用FRAME等控件作为容器,用VISIBLE控制分别显示。
可是昨天我却遇到了这种情况:
界面需要显示、编辑一个数据库的表,我在工程1中开始进行测试,比较使用DBGRID、LISTVIEW以及MSFLEXGID控件的显示效果。我先添加了这三种控件,经过一番比较,觉得还是MSFLEXGRID控件比较友好,虽然它不能进行编辑,但是我记得在MSDN中有过这方面的例子,网上也很多这种例子,就是通过动态移动一个TEXTBOX控件完成编辑功能。于是我又放置了一个TEXTBOX控件,经过一番调试,简化了部分代码完成了这项功能。
代码如下:
Private Sub MSFlexGrid1_Click() i = MSFlexGrid1.Col j = MSFlexGrid1.Row With MSFlexGrid1 text1.Move .Left + .CellLeft, .Top + .CellTop, .CellWidth, .CellHeight text1.Text = .Text text1.Visible = True text1.SetFocus End With End Sub Private Sub text1_LostFocus() If i = 0 Or j = 0 Then Exit Sub End If MSFlexGrid1.TextMatrix(j, i) = text1.Text text1.Visible = False End Sub
以上代码非常简单,不多做解释了。