以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  鼠标在表格上移动前如何先激活  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109576)

--  作者:zhangchi96
--  发布时间:2017/11/15 10:43:00
--  鼠标在表格上移动前如何先激活

我在表的属性MouseEnterCall里设置了一下代码:

 

Dim z1() As String = { "周1_1","周1_2","周1_3","周1_4","周1_5","周1_6","周1_7","周2_1","周2_2","周2_3","周2_4","周2_5","周2_6","周2_7","周3_1","周3_2","周3_3","周3_4","周3_5","周3_6","周3_7","周4_1","周4_2","周4_3","周4_4","周4_5","周4_6","周4_7","周5_1","周5_2","周5_3","周5_4","周5_5","周5_6","周5_7" }
For Each dc0  As String In z1
      Dim dr As DataRow
     dr = DataTables("网络教师课务明细表").Find( " [班级] = \'" & e.Row("班级") & "\' and [学科] = \'"& e.Row( dc0 ) &"\' ")

    If e.Col.Name = dc0 AndAlso e.Row.IsNull( dc0 ) = False Then
        e.Table.ShowToolTip( e.Row("班级") & "班 " & e.Row( dc0 ) & " " & dr("实际_姓名"),e.Row,e.Col)   \' 在鼠标停留的时候就看到完整信息
    End If
Next

 

1、实际运行无误,

 

2、在窗体把鼠标移动到表上时,首先在表上先任意点击一下,才能显示

 

3、如果去点击了其他控件后还要再点击一下,而且是在鼠标点击的时候还写了其他代码,这些代码会引起表格的内容发生变化

 

请教老师,这是不是因为表不在激活状态?

 

 

[此贴子已经被作者于2017/11/15 10:43:21编辑过]

--  作者:有点甜
--  发布时间:2017/11/15 11:33:00
--  

表格drawcell事件

 

Dim ary() As String = e.Table.name.Split("_")
If ary.length = 2 AndAlso forms(ary(0)).ActiveControl IsNot Nothing AndAlso forms(ary(0)).ActiveControl.name <> ary(1) Then
    forms(ary(0)).controls(ary(1)).Select
End If


--  作者:zhangchi96
--  发布时间:2017/11/15 23:10:00
--  
运行没有用,请问 e.Table.name.Split("_") ,这里为什么要对表名拆分呢?含有“_”的是列名,如"周1_2"

--  作者:有点甜
--  发布时间:2017/11/15 23:15:00
--  
那你窗口的表是不是副本表?具体做个例子发上来测试。
--  作者:zhangchi96
--  发布时间:2017/11/15 23:22:00
--  

不是副本表。

 

1、 e.Table.name.Split("_")  是不是该写成  e.col.name.Split("_")  ?

 

2、 如果上面的设想成立的话,forms(ary(0)).controls(ary(1)).Select  在某一情况下 是  forms(“周1”).controls(1).Select 这个表示哪个控件啊?



[此贴子已经被作者于2017/11/15 23:22:50编辑过]

--  作者:zhangchi96
--  发布时间:2017/11/15 23:36:00
--  

我把代码都去了,直接写成:e.Table.Select  ,运行时有用了

 

Dim ary() As String = e.col.name.Split("_")
If ary.length = 2 AndAlso forms(ary(0)).ActiveControl IsNot Nothing AndAlso forms(ary(0)).ActiveControl.name <> ary(1) Then
    e.Table.Select 
End If
 
还是担心那么简单会出现问题,要不要把上面的红色部分修改一下?

[此贴子已经被作者于2017/11/16 8:14:01编辑过]

--  作者:zhangchi96
--  发布时间:2017/11/16 8:15:00
--  
直接写成:e.Table.Select  还是出问题了,在窗体中,鼠标会一直选定这个表的某一单元格,移动窗体的其他表中操作都无效了
--  作者:有点甜
--  发布时间:2017/11/16 8:47:00
--  
以下是引用zhangchi96在2017/11/16 8:15:00的发言:
直接写成:e.Table.Select  还是出问题了,在窗体中,鼠标会一直选定这个表的某一单元格,移动窗体的其他表中操作都无效了

 

实例发上来测试。

 

别的表格的drawcell事件也要写代码。