当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·如何确定模拟器和iis连接成功    »显示摘要«
    摘要: 我用的是evc4.0 可是模拟器中没有ie,我怎么才能知道模拟器和iis连接成功呢? ......
 ·如何可以动态创建资源    »显示摘要«
    摘要: rt ......


********高分求解 MSHFlexGrid 问题

1、如何令MSHFlexGrid隔行或隔列以不同颜色显示(内容和背景)  
  2、怎样令MSHFlexGrid可编辑  
  3、怎样把MSHFlexGrid的当前行删除  
  4、怎样把MSHFlexGrid的修改保存到相应的数据库中

NO.1   作者: lihonggen0

 
          增加   MsFlexGrid   的编辑功能  
     
     
   
   
   
  概述  
  MsFlexGrid   控件没有提供文本编辑的功能,下面的例子演示了如何利用一个TextBox   实现编辑当前网格的功能。  
   
  在按下一个键后,   就把TextBox   移动到当前的位置,   并激活。   在键入回车或移动到其他网格时,   就把TextBox   中的内容放到网格中。    
   
  实现步骤  
  1   打开   VB5,   开启一个新的工程。  
   
  2   在菜单“工程”   中选择   “部件”,   在列表中选中   “Microsoft   FlexGrid   Control   ..”  
   
  3   放一个   MsFlexGrid   控件和一个TextBox   控件(Text1)到   Form1。   修改MsFlexGrid   控件的名称为   Grid1,   设置Grid1   的行,列   为   4,   固定行,列为   0。   设置   Text1   的   Visiable   为   False,   BorderStyle   为   None(0)。  
   
  4   在Form1   的代码中增加声明:  
   
  Const   ASC_ENTER   =   13   回车  
  Dim   gRow   As   Integer  
  Dim   gCol   As   Integer  
   
  5   增加代码到   Grid_KeyPress   过程:  
   
  Private   Sub   Grid1_KeyPress(KeyAscii   As   Integer)  
    Move   the   text   box   to   the   current   grid   cell:  
  Text1.   =   Grid1.Cell   +   Grid1.  
  Text1.Left   =   Grid1.CellLeft   +   Grid1.Left  
    Save   the   position   of   the   grids   Row   and   Col   for   later:  
  gRow   =   Grid1.Row  
  gCol   =   Grid1.Col  
    Make   text   box   same   size   as   current   grid   cell:  
  Text1.Width   =   Grid1.CellWidth   -   2   *   Screen.TwipsPerPixelX  
  Text1.Height   =   Grid1.CellHeight   -   2   *   Screen.TwipsPerPixelY  
    Transfer   the   grid   cell   text:  
  Text1.Text   =   Grid1.Text  
    Show   the   text   box:  
  Text1.Visible   =   True  
  Text1.ZOrder   0     把   Text1   放到最前面!  
  Text1.SetFocus  
    Redirect   this   KeyPress   event   to   the   text   box:  
  If   KeyAscii   <>   ASC_ENTER   Then  
  SendKeys   Chr$(KeyAscii)  
  End   If  
  End   Sub  
   
  6   增加代码到   Text1_KeyPress   过程:  
   
  Private   Sub   Text1_KeyPress(KeyAscii   As   Integer)  
  If   KeyAscii   =   ASC_ENTER   Then  
  Grid1.SetFocus     Set   focus   back   to   grid,   see   Text_LostFocus.  
  KeyAscii   =   0     Ignore   this   KeyPress.  
  End   If  
  End   Sub  
   
  7   增加代码到   Text1_LostFocus   过程:  
   
  Private   Sub   Text1_LostFocus()  
  Dim   tmpRow   As   Integer  
  Dim   tmpCol   As   Integer  
    Save   current   settings   of   Grid   Row   and   col.   This   is   needed   only   if  
    the   focus   is   set   somewhere   else   in   the   Grid.  
  tmpRow   =   Grid1.Row  
  tmpCol   =   Grid1.Col  
    Set   Row   and   Col   back   to   what   they   were   before   Text1_LostFocus:  
  Grid1.Row   =   gRow  
  Grid1.Col   =   gCol  
  Grid1.Text   =   Text1.Text     Transfer   text   back   to   grid.  
  Text1.SelStart   =   0     Return   caret   to   beginning.  
  Text1.Visible   =   False     Disable   text   box.  
    Return   row   and   Col   contents:  
  Grid1.Row   =   tmpRow  
  Grid1.Col   =   tmpCol  
  End   Sub  
   
  8   好了。   按   F5   开始测试。   您可以自由地在   Grid   中移动,   按回车可以开始或结束编辑。    
   
   
     
         
     
       
     
 

NO.2   作者: nik_Amis

lihonggen0(李洪根,用.NET,标准答案来了)  
  你如何控制ColResize事件?  
  MSHFlexGrid不支持捕获队列的鼠标移动事件  
  这将导致textbox无法及时更新宽度  
  另外,滚动条的改变也将导致textbox位置不正确  
   
  这些问题你是如何解决的?  
  我曾经打算用钩子,可是失败了

NO.3   作者: nik_Amis

我觉得还是直接捕获键盘事件,直接写到grid里面,不需要经过textbox  
  但是这样也有缺点!


    摘要: 请问:javabean的bean代码应该放在哪个文件夹,如何编译?(我用的是jswdk1.0.1) ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE