以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  panel显示提示信息问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145932)

--  作者:nxqtxwz
--  发布时间:2020/2/12 11:57:00
--  panel显示提示信息问题

    老师你好,我想做一个评比项目,有很多的提示信息放在一个信息提示表中,以后提示信息或评比条件有变化,只改变信息表中的信息即可。但如果是一个panel可以,但要是有多个panel怎么办。请老师帮我看看:

1、panel2、panel3、.....panel5对应的提示信息表岗位晋级列1、2、3、4、5条记录怎么显示出来。

2、输入申报人姓名和申报岗位等级后,后面有一些项目内容自动从职工信息总库中提取,但只提取第一条记录的,为什么不是同一个人的。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:提示信息显示.zip


--  作者:有点蓝
--  发布时间:2020/2/12 12:08:00
--  
没看懂。panel是一个容器,是无法设置任何文字的。只有文本框才能显示文字


--  作者:nxqtxwz
--  发布时间:2020/2/12 12:37:00
--  
以下是引用有点蓝在2020/2/12 12:08:00的发言:
没看懂。panel是一个容器,是无法设置任何文字的。只有文本框才能显示文字

文本框显示的文字不能设置行间距,文字一多真的是无法看清楚。上面的例子是一个panel容器分别显示不同的内容;我想做的是用不同的panel容器分别装不同的内容。

下面的代码怎么改能分别给panel1、panel2、panel3、.....panel5赋值呢?

 

Dim rtxt As New System.Windows.Forms.RichTextBox
UtilsSetLineSpace.SetLineSpace(rtxt, 400)
rtxt.name = "mytxt"
rtxt.Dock = 5
e.Form.Controls("Panel1").BaseControl.Controls.Add(rtxt)
rtxt.Multiline = True

上面的代码弄不懂。

 

 

Dim rtxt = Forms("岗位晋级").Controls("Panel1").basecontrol.Controls("mytxt")
           rtxt.text = Tables("提示信息").Rows(0)("岗位晋级")



--  作者:有点蓝
--  发布时间:2020/2/12 13:43:00
--  
多段代码重复调用即可

Dim rtxt As New System.Windows.Forms.RichTextBox \'新建一个第三方控件,控件的详细属性用法请参考:https://docs.microsoft.com/zh-cn/dotnet/api/System.Windows.Forms.RichTextBox?view=netframework-4.8

UtilsSetLineSpace.SetLineSpace(rtxt, 400) \'设置行间距
rtxt.name = "mytxt" \'设置控件名称
rtxt.Dock = 5 \'设置控件停靠属性
e.Form.Controls("Panel1").BaseControl.Controls.Add(rtxt) \'把控件添加入Panel1
rtxt.Multiline = True \'控件允许显示多行

Dim rtxt2 As New System.Windows.Forms.RichTextBox
UtilsSetLineSpace.SetLineSpace(rtxt2, 400)
rtxt.name = "mytxt2"
rtxt.Dock = 5
e.Form.Controls("Panel2").BaseControl.Controls.Add(rtxt2)
rtxt2.Multiline = True

--  作者:nxqtxwz
--  发布时间:2020/2/12 14:52:00
--  

太好了,问题解决了。谢谢老师。有个问题,就是下面的代码怎么能放在窗口的Afterload事件中呢。

 

Dim rtxt6 As New System.Windows.Forms.RichTextBox
UtilsSetLineSpace.SetLineSpace(rtxt6, 400)
rtxt6.name = "mytxt"
rtxt6.Dock = 5
e.Form.Controls("Panel6").BaseControl.Controls.Add(rtxt5)
rtxt1.Multiline = True

 

 

\'Dim rtxt6 = Forms("岗位晋级").Controls("Panel6").basecontrol.Controls("mytxt")
rtxt6.text = Tables("提示信息").Rows(5)("岗位晋级")
rtxt6.ForeColor = color.Blue
rtxt6.Font = New Font("宋体",15)

 

都放在Afterload事件中定义冲突,如果把下面的代码放在别的事件中,必须要在窗口中点击鼠标才能显示出来,这样界面不好。


--  作者:有点蓝
--  发布时间:2020/2/12 14:58:00
--  
按5楼用法就行了,本来就不需要重复定义
--  作者:nxqtxwz
--  发布时间:2020/2/12 15:11:00
--  
以下是引用nxqtxwz在2020/2/12 14:52:00的发言:

太好了,问题解决了。谢谢老师。有个问题,就是下面的代码怎么能放在窗口的Afterload事件中呢。

 

Dim rtxt6 As New System.Windows.Forms.RichTextBox
UtilsSetLineSpace.SetLineSpace(rtxt6, 400)
rtxt6.name = "mytxt"
rtxt6.Dock = 5
e.Form.Controls("Panel6").BaseControl.Controls.Add(rtxt5)
rtxt1.Multiline = True

 

 

\'Dim rtxt6 = Forms("岗位晋级").Controls("Panel6").basecontrol.Controls("mytxt")
rtxt6.text = Tables("提示信息").Rows(5)("岗位晋级")
rtxt6.ForeColor = color.Blue
rtxt6.Font = New Font("宋体",15)

 

都放在Afterload事件中定义冲突,如果把下面的代码放在别的事件中,必须要在窗口中点击鼠标才能显示出来,这样界面不好。

怎么能把粉色的代码合二为一呢?

另外,A、B两表都有姓名列,怎么在A表中输入姓名后,在B表中选中姓名相同的记录呢?


--  作者:有点蓝
--  发布时间:2020/2/12 15:18:00
--  
都说了不需要重复定义。把第二个粉色代去掉即可,画蛇添足。

A表DataColChanged事件
If e.DataCol.Name = "姓名" Then
    If e.NewValue > "" Then
        Dim wz As Integer = Tables("表B").FindRow("姓名=\'" & e.NewValue & "\'")
        If wz >=0 Then
            Tables("表B").Position = wz
        End If
    End If
End If