・92・ 榆林学院学报 2008年第4期(总第74期) End With 分别使光标左移或右移一格,而ENTER键则使光 Text1.Visible=False窗体初始化时,设置文 标右移一格且移到行尾时自动跳至行首单元,ESC 本框的属性为不可见 键可退出对单元格的编辑。关键代码如下: End Sub Private Sub Textl—KeyDown(KeyCode As Inte— Private Sub MSFlexGrid 1一EnterCell() ger,Shitf As Integer) Dim Netl As Single确定MSFlexGridl的位置 On Error Resume Next Dim Net2 As Single Select Case KeyCode Witl1 MSFlexGfid】 Case vbKeyEscape当按ESC键时,退出对 MSFlexGridl的第一列为Combo1,MSFlex— 文本框的编辑 Gridl的其余各列为Text1 Text1.Text=MSF1exGrid1.Text If.Col=0 Or.Col=2 Or.Col:3 Or. MSFlexGrid 1.SetFocus Col=4 Or.Col=5 Or.Col:6 Or.Col=7 Then Case vbKeyReturn当按ENTER键时,完成 Me!fText1].Visible=True 对文本框的编辑 Netl=.Top设置Text1的参数值与 MSFlexGrid1.SetFoCUS MSFlexGridl网格单元相同 MSFlexGrid1.Row=MSFlexGrid1.Row+l Net2=.Left MSFlexGrid1.Col=l Me![Text1].Top=Net 1+.CellTop Case vbKeyDown当按DOWN ARROW键时, Me![Text1].Left=Net 2+.CelleLft 下移一行 Me![Text1].Height=.CellHeight MSFlexGrid1.SetFocus Me![Text1].Width=.CellWidth DoEvents End If If MSFlexGrid1.Row<MSFlexGrid1.Row End With —lThen End Sub MSFlexGrid1.Row=MSFlexGrid1.Row+l Private Sub MSFlexGridlEnd If —LeaveCell() fI.Col=0 Or.Col=2 Or.Col=3 Or. Case vbKeyRight当按RIGHT ARROW键时, Col=4 Or.Col=5 Or.Col:6 Or.Col=7 Then 右移一列 .Text=Me![Text1].Text佣Textl给 MSFlexGrid1.SetFocus MSFlexGridl相应网格赋值 DoEvents Me![Text1].Visible=False If MSFlexGrid1.Col=8 Then End If MSFlexGrid1.Row=MSFlexGrid1.Row+l End Sub MSFlexGrid1.Col=l 1.2利用光标在网格单元间移动,进行编辑用鼠 End If 标操作时,用户若想在某个单元格中输人数据,必须 Case vbKeyLeft当按LEn ARROW键时,左 先用鼠标点击该单元使其获得焦点,然后才能利用 移一列 键盘完成输入。这样,用户需要在键盘与鼠标之间 MSFlexGrid1.SetFocus 频繁切换,非常不便。 MSFlexGrid1.Col=MSFlexGrid1.Col—l 下段代码实现的功能是:在对MSFlexGrid控件 Case vbKeyUp当按uP ARROW键时,上移 进行编辑时,利用上、下、左、右光标键(UP、DOWN、 一行 LEFT、RIGHT)、回车键(ENTER)和退出键(ESC), MSFlexGrid1.SetFocus 在网格单元间移动光标,进行编辑。这种方法,不需 DoEvents 切换键盘与鼠标,方便了操作。其中UP和DOWN If MSFlexGrid1.Row>MSFlexGrid1.Fixe— 可分别使光标上移或下移一行,LEFT和RIGHT可 dRows Then 维普资讯 http://www.cqvip.com
孙爱民,王荣:MS ̄exGfid控件可编辑功能的设计与实现 ・93・ MSFIexGrid1.Row=MSFIexGrid1.Row一1 生信息(单元号、楼层数、所属系别、寝室长信息、已 End If 交学费情况等)输人数据库中,MSFlexGrid控件的 End Select 编辑功能可通过代码编程实现。当程序运行时, End Sub MSFlexGrid控件读取信息,管理员通过相关的Click 上段代码保证了在对MSFlexGrid控件进行编 事件完成操作,如果想使用MSFIexGrid删除数据表 辑时,能方便地进行光标移动和随时退出编辑状态, 中的某条记录,那么在定义MSFlexGrid控件时要定 从而提高了操作速度。同时,保证了TextBox控件 义一个固定列,然后设置MSFIexGrid1.AIIowBigSe— 与MSFlexGrid控件的网格单元在形式上与内容上 lection=True,或者在MsFlexGrid的属性中将“选 的统一,从根本上解决了MSFIexGrid控件的可编辑 定模式”设为“1一By Row”,这样,可以在单击某行 问题。 时,使整个行都被选中,接下来就可以使用SQL中 2应用实例 的delete语句将选中行的内容从数据表中删除,同 MSFlexGrid控件操作数据相当灵活,数据源可 时利用循环语句将MSFlexGrid中的对应的行也删 以来自不同的记录集。它既可以用SQL语句连接 除掉。 数据库自动读取数据,又可以根据开发者自己的需 3结语 要随意写人数据,多种方法可同时并存使用,在行列 虽然MSFlexGrid控件主要是用表格式窗体显 中透视数据非常方便。诸如在一个《学生档案管理 示信息的,然而,综上所述,我们可通过适当选择 系统》中,部分功能可由MSFIexGrid控件实现,如学 MSFlexGrid控件的属性、方法,并将其相关事件与所 生信息的显示、修改等。 需控件联合使用,使其具有可编辑功能。MSFIex— 《学生档案管理系统》可针对学校内各宿舍楼 Grid控件一旦具有了编辑功能,就能够方便地实现 群,利用MSFlexGrid控件进行基本信息管理,如学 数据的录人、存储、统计、排序等操作,这样既能增强 生信息查询、修改、统计输出报表等工作。程序设计 程序的交互性,也更符合使用者日常处理数据的习 时,可将每幢宿舍楼的单元数与楼层数编制成若干 惯,在数据库应用软件的开发中,实用性较强。 行与列,对应MSFlexGrid控件的单元格,将各楼学 参考文献: [1]明日科技.Visual Basic数据库开发关键技术与实例应用[M].北京:人民邮电出版社,2004. [2]刘韬,骆娟,何旭洪.Visual Basic 6.0数据库系统开发实例导航[M].北京:人民邮电出版社,2002. [3]黄森云,张学中,王福成.Visual Basic控件应用编程实例教程[M].北京:北京希望电子出版社,2002. [4]张宏林,孔艳,王哲.Visual Basic开发数据库[M].北京:人民邮电出版社,1999. ・(责任编辑:邵治亮) Design and Realization of MSFlexGrid’S Edit—function SUN Ai—min,WANG Rong (Luohe Vocational and Technical College,Luohe 462002,Henan) Abstract:This paper mainly discusses some solving methods to make the only reading MSFlexGrid control have ed— iting function in VB environment. . .Key words:MSFlexGrid control;edit——function;design and realization
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务