怎样解决录入数字时整数部分跑到小数位上去的问题

fastgyk 2014-12-06 02:50:31
在VF中的表格或文本框中录入带小数的数字时,由于小数点已事先存在,当录入时随意点击这个文本框时由于光标不在此文本框最前面(可能在中间位置),如果整数较大时会导致录入的整数部分进入到小数部分中,十分不方便。
请问各位老师有什么好的解决方法吗?
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lygcw9602 2014-12-07
  • 打赏
  • 举报
回复
可能是会计凭证录入时,用表格............
fastgyk 2014-12-07
  • 打赏
  • 举报
回复
非常感谢十豆三老师的解答。已完美解决了文本框小数的录入问题。 但是在表格中的小数录入问题用以上代码不行,是否第1行应该改一下,还请老师指教。
oldbbb 2014-12-07
  • 打赏
  • 举报
回复
用SelectOnEntry + SetFocus不可以吗, 难道我理解错了?
CREATE CURSOR dt (F1 N(10,2), F2 C(10))
FOR i = 1 TO 20
    INSERT INTO dt VALUES (i/2, PADL(i,4,"0")) 
ENDFOR
GO TOP

PUBLIC oForm
oForm = NEWOBJECT("Form1")
oForm.Show
RETURN

DEFINE CLASS Form1 As Form
    Add Object Grid1 As Grid

    PROCEDURE Grid1.Init
        FOR EACH oColumn IN this.Columns
            BINDEVENT(oColumn.Text1, "Click", thisform, "_GridTextClick")
        ENDFOR
    ENDPROC

    FUNCTION _GridTextClick
        IF (AEVENTS(aObj, 0) > 0)
            IF (PROPER(aObj[1].BaseClass) == "Textbox")
                aObj[1].SelectOnEntry = !aObj[1].SelectOnEntry && 点一下击全选,再点一下定位光标
                IF aObj[1].SelectOnEntry
                    aObj[1].SetFocus    && 如果不用全选,就这一句就可以将光标定位在左边首
                ENDIF
            ENDIF
        ENDIF
    ENDPROC
ENDDEFINE
lygcw9602 2014-12-07
  • 打赏
  • 举报
回复
用BINDEVENT( ) 函数解决,具体内容请看帮助文件内容
fastgyk 2014-12-07
  • 打赏
  • 举报
回复
假如表格控件的第3列是带小数位的,我想鼠标单击此列时变成自动选中状态(兰色),应该怎么办?
lygcw9602 2014-12-07
  • 打赏
  • 举报
回复
解决方法: 在该TEXTBOX的CLICK事件中写入下列代码 THIS.SELSTART=0
十豆三 2014-12-06
  • 打赏
  • 举报
回复
文本框用鼠标单击或TAB自动移到其上,自动选中全部文本框内容,这样输入效果就可以了。 在文本框 的 GotFoucs 事件中写代码: TextBox::GotFocus() This.SelStart = 0 This.SelLength = 999999 NoDefault
oldbbb 2014-12-06
  • 打赏
  • 举报
回复
这样能否满足要求: 属性:SelectOnEntry = .T. 事件 MouseEnter: (移到即止) this.SetFocus 或 事件 Click: (点到即止) this.SetFocus

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧