以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]RichTextBox随机单元格例子  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98484)

--  作者:jyh7081
--  发布时间:2017/3/30 15:57:00
--  [求助]RichTextBox随机单元格例子

用RichTextBox作为显示或编辑窗口,效果比textbook效果要好,例子中有些代码虽然没有报错,但却没产生作用,例如:字体、字号、行间距等,不知是何原因?

另外希望大师能帮助完善一项功能,例子里窗口绑定了表中的[第一列],希望能同步当前表的焦点单元格,作为显示或编辑的窗口。

谢谢!

代码如下:

Dim rt As new Windows.Forms.RichTextBox  \'定义 一个RichTextBox
rt.Dock = Windows.Forms.DockStyle.Fill  \'控件停靠方式为撑满父控件
rt.name = "RichTextBox1"  \'设置控件名称
\'rt.languageoption = System.Windows.Forms.richtextboxlanguageoptions.uifonts  \'设置 LanguageOption 属性
rt.Font = new System.Drawing.Font(FontFamily.GenericMonospace, 20)    \'此代码有效,但不能设字体

rt.DataBindings.Add("text", Tables("表A").Grid.DataSource, "第一列")   \'RichTextBox绑定第一列,希望同步所有单元格

\'rt.SelectionColor = Color.Red    \'背景色无效
\'rt.SelectionFont = New Font("楷体",20,FontStyle.Bold)  \'字体字号无效
\'rt.SetLineSpace(600)   \'设置行间距无效

e.Form.Controls("Panel1").BaseControl.Controls.Add(rt)   \'控件放入Panel1中作为子控件

 

附件:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:richtextbox随机单元格例子.table


--  作者:狐狸爸爸
--  发布时间:2017/3/30 17:16:00
--  
我们只能对帮助内容提供支持,非主流需要自行摸索。
--  作者:有点色
--  发布时间:2017/3/30 19:05:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:richtextbox随机单元格例子.table


--  作者:jyh7081
--  发布时间:2017/3/30 19:43:00
--  
非常感谢有点色老师,非常好用,以后确实可以代替textbox了。还有一点,就是点击控件直接进入编辑状态,不出现全选的过程,怎样设置?
--  作者:有点色
--  发布时间:2017/3/30 19:56:00
--  

timerTick事件

 

If vars("xy") <> CurrentTable.RowSel & "," & CurrentTable.ColSel Then
    vars("xy") = CurrentTable.RowSel & "," & CurrentTable.ColSel   
    Dim rt = e.form.Controls("Panel1").basecontrol.Controls("mytxt")
    rt.text = CurrentTable.Value
    rt.Select(0, rt.text.length)
    rt.SelectionColor = Color.Red    \'背景色无效
    rt.SelectionFont = New Font("楷体",20,FontStyle.Bold)  \'字体字号无效
    rt.SelectionStart = rt.text.length
End If


--  作者:jyh7081
--  发布时间:2017/3/30 20:30:00
--  

还有一点,鼠标右键功能没有了。

 

搜了两条,但不会用:

1、

http://www.phpfans.net/ask/MTMwNjQyMQ.html/

2、

http://wenda.so.com/q/1378594785073714

 

 

 


--  作者:有点色
--  发布时间:2017/3/30 20:51:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:richtextbox随机单元格例子.table

[此贴子已经被作者于2017/3/30 20:53:11编辑过]

--  作者:jyh7081
--  发布时间:2017/3/30 22:23:00
--  

我用的是试用版,不能在窗口设置"快捷菜单1”;

 

rt.ContextMenuStrip = e.form.Strips("快捷菜单1").basecontrol \'则在鼠标位置显示快捷菜单

 

我在系统菜单设置的"快捷菜单1”,上句代码改为:

 

rt.ContextMenuStrip = ContextMenus("快捷菜单1")      ’提示错误。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:image 1.jpg
图片点击可在新窗口打开查看

  


图片点击可在新窗口打开查看此主题相关图片如下:image 3.jpg
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2017/3/30 22:45:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:richtextbox随机单元格例子.table


--  作者:jyh7081
--  发布时间:2017/4/13 23:30:00
--  

1、我在项目的AfterOpenProject事件里隐藏表;

For Each t As Table In Tables
    t.Visible = False
Next

 

2、在窗口的AfterLoad设置  打开“窗口1”时,后台的焦点表为“表A”;

If Forms("窗口1").opened
Dim t As Table = Tables("表A")
    If t.Visible Then
        MainTable = t
        t.Focus
    End If
End If

 

这时,窗口就不跟随单元格同步了,是哪里原因?去掉项目事件的隐藏表代码,就可以同步。

例子: 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:richtextbox记录窗口.table