以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:文本框输入时,如何控制光标选中特定字符?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57963)

--  作者:bahamute
--  发布时间:2014/10/9 11:14:00
--  请教:文本框输入时,如何控制光标选中特定字符?

财务录入时(窗口操作),每笔都要输入凭证号

程序已经设置为新建记录时,默认生成如下凭证号:


华信-14-09-00#


财务人员提出要求,能否修改14之后,光标自动跳到09,并将09选中,或者修改09之后,光标自动跳到00,并将00选中,便于提高效率,减少失误。


特请教。





[此贴子已经被作者于2014-10-9 11:16:33编辑过]

--  作者:有点甜
--  发布时间:2014/10/9 11:18:00
--  

 1、可以设置掩码;

 

 2、你可以用 SelectionStart 和 SelectText 模拟 http://www.foxtable.com/help/topics/1888.htm

 

[此贴子已经被作者于2014-10-9 11:18:33编辑过]

--  作者:Bin
--  发布时间:2014/10/9 11:18:00
--  
请上例子
--  作者:lsy
--  发布时间:2014/10/9 11:45:00
--  

看那凭证号,应该只需要改编号,年月以及之前的自动生成,无需修改。

 

TimerTick

 

Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
txt.Text = "华信-" & Format(Date.Today,"yy-MM") & "-00#"
txt.SelectionStart = 9
txt.SelectionLength = 2
e.Form.TimerEnabled = False

 

[此贴子已经被作者于2014-10-9 11:45:15编辑过]

--  作者:bahamute
--  发布时间:2014/10/9 12:08:00
--  

SelectionStart

整数型,返回文本框中选定字符的起始位置。


只能返回起始位置,如何设置起始位置?


--  作者:bahamute
--  发布时间:2014/10/9 12:11:00
--  
谢谢。
--  作者:bahamute
--  发布时间:2014/10/9 15:06:00
--  
还是没有解决,上例子。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目101.foxdb





--  作者:有点甜
--  发布时间:2014/10/9 15:33:00
--  

 简单一点,自己扩展,在keyup事件加入如下代码

 

If e.KeyCode = Keys.Right Then
    Dim str As String = e.Sender.Text.SubString(e.Sender.SelectionStart)
    If str.StartsWith("-") = False Then
       
        Dim idx As Integer = str.IndexOf("-")
        If idx > -1 Then
            e.sender.SelectionLength = idx
        Else
            idx = str.IndexOf("#")
            If idx > -1 Then
                e.sender.SelectionLength = idx
            Else
                e.Sender.SelectionLength = str.Length
            End If
        End If
    End If
End If


--  作者:lsy
--  发布时间:2014/10/9 15:36:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目101.foxdb


--  作者:bahamute
--  发布时间:2014/10/9 17:30:00
--  
谢谢各位版主的帮助,问题圆满解决。