flexgird中单元格内容编辑问题。
使用了text框,可是在.AllowUserResizing = flexResizeColumns情况下,列宽可以随便拉动,可是,text框的宽度不随着改变。
有没有哪个事件可以知道改变列宽情况下?如果不能一起改变,也可以让列宽改变的时候,text框不使用。但是捕获不到这个动作。

解决方案 »

  1.   

    '**************************************************************
    '*名称:ShowTxtInput
    '*功能:根据输入的行与列显示文本框的显示位置
    '*传入参数:row,col
    '*返回参数:
    '*作者:Leftie
    '*日期:2003-07-29 11:25:15
    '***************************************************************
    Private Sub ShowTxtInput(Row As Integer, Col As Integer)
    On Error GoTo Err_Proc
       With Flexgrid
         .Row = Row
         .Col = Col
         txtInPut.Left = .Left + .CellLeft
         txtInPut.Top = .Top + .CellTop
         txtInPut.Width = .CellWidth - 10
         txtInPut.Height = .CellHeight - 10
         txtInPut.Text = .TextMatrix(Row, Col)
         txtInPut.Visible = True
       End With
       Exit Sub
       
    '错误处理
    Err_Proc:
       MsgBox "操作失败,错误原因为:" & Err.Description, vbExclamation, "提示"
       Exit Sub
    End Sub
      

  2.   

    ??
    你这个只能做到用结合text框编辑flexgrid的cell,但是如果使用了
    MSHFlexGrid1.AllowUserResizing = flexResizeColumns可是任意拉动head的列宽,在拉动后,text框的宽度不会随着同时改变,一定要重新点击这个单元格。
    我的问题就是,怎么让拉动后,不用重新点击单元格而改变text框宽度以适合改变后的列宽。
      

  3.   

    可写在textbox1的lostfocus事件中,使textbox1.visible=false
      

  4.   

    嗯,谢谢
    不过能不能让TEXT框的大小随着拉动而改变?
      

  5.   

    啊,发现另外一个问题,你这样做不很正确
    如果在从一个CELL框点击到另为一个CELL框的时候,也会TEXTBOX VISIBLE,要点两次。
      

  6.   

    同一个框要点两次,而从一个CELL到另外一个CELL,只要点一次,感觉混乱。