If e.OldRange.ColSel <> e.NewRange.ColSel
Dim c As Col = e.Table.Cols(e.NewRange.ColSel)
Select Case c.name
Case "辍学分类"
Forms("信息").Show
Dim rtxt = Forms("信息").Controls("Panel1").basecontrol.Controls("mytxt")
rtxt.ForeColor = color.Blue
rtxt.text = Tables("表B").Rows(0)("表A")
Case "当前状态"
Forms("信息").Show
Dim rtxt = Forms("信息").Controls("Panel1").basecontrol.Controls("mytxt")
rtxt.ForeColor = color.Blue
rtxt.text = Tables("表B").Rows(1)("表A")
Case "劝学措施"
Forms("信息").Show
Dim rtxt = Forms("信息").Controls("Panel1").basecontrol.Controls("mytxt")
rtxt.ForeColor = color.Blue
rtxt.text = Tables("表B").Rows(2)("表A")
Case Else
Forms("信息").Close
End Select
End If
显示下面的错误怎么办?应该是显示在窗口“信息”中,代码怎么写呢。
NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:表A,AfterSelChange
详细错误信息:
列“表A”不属于表 表B。
提示很明显了,列名用错了。这个代码想实现什么功能?
想着点了表A中的一列,则将表B中的一列中第几条记录显示在窗口“信息”里。
比如:
鼠标如果点了表A的第二列,则将表B中第五列第三条记录的内容显示在窗口“信息”中。
如果点了表A的第三列,则将表B中第五列第四条记录的内容显示在窗口“信息”中。
依此类推,起到说明作用。
[此贴子已经被作者于2023/12/18 8:52:05编辑过]
改为需要的列名呀
rtxt.text = Tables("表B").Rows(0)("第五列")
老师您好,问题解决,谢谢。但还有个问题就是:
当刚打开表,点不管哪个列,都不会出现提示窗口,只有换了行后才出现窗口。这个原因是代码放在了表A的AfterSelChange事件中,只有列变了才激发代码执行。如何能做到一打开表不管点哪个列都能及时出现提示窗口呢
[此贴子已经被作者于2023/12/18 10:24:20编辑过]
您的代码逻辑就是只有选择这3个列才会显示的呀,其它列就关闭了。如果现在其它列也打开窗口,那么窗口显示什么内容呢?

此主题相关图片如下:1.png

老师,问题在于代码放在哪个事件中,因为打开表后第一次无论选哪个列它都不显示提示信息。只有第二次行择不同列它才显示。
AfterOpenProject事件加上代码
Forms("信息").Show
Dim rtxt = Forms("信息").Controls("Panel1").basecontrol.Controls("mytxt")
rtxt.ForeColor = color.Blue
rtxt.text = Tables("表B").Rows(0)("第五列")