EditMask获取光标焦点后全选问题

chido 2004-06-29 11:55:52
我知道要用SelectText,但是这个函数需要设置其实位置,
可是EditMask中没有值的时候默认显示一个0,这个时候EditMask的长度也为0,
因此也选不中,但是我现在需要选中这个默认的0,因为如果不选择这个默认的0,
光标在这个0前,输入一个数字,如9,立刻EditMask的内容就是90了,而输入之前,
EditMask虽然显示0,但是内容是空的,此时如果你输入0,内容才会是0。
...全文
252 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chido 2004-06-29
  • 打赏
  • 举报
回复
如果是手动输入0,那值就是0,长度就是1了,你的意思是在Select前赋值?
yl_yz 2004-06-29
  • 打赏
  • 举报
回复
chido(痴豆吃豆)
mask是####0,在没有值的时候默认显示一个0,但是有这个0的时候EditMask是不认为有的,
这个时候Text内容为空,长度为0,所以是没法用selecttext(1,len(this.text))选中的.

那在EditMask控件的text属性里输入0怎样?
chido 2004-06-29
  • 打赏
  • 举报
回复
试过了,不可以,看清我的文章内容,EditMask虽然显示一个0,但是他自己认为为空,长度为
0,怎么能按照区间进行选择呢?
TGWall 2004-06-29
  • 打赏
  • 举报
回复
可以吧
代码写在getfocus事件里
chido 2004-06-29
  • 打赏
  • 举报
回复
mask是####0,在没有值的时候默认显示一个0,但是有这个0的时候EditMask是不认为有的,
这个时候Text内容为空,长度为0,所以是没法用selecttext(1,len(this.text))选中的.
TGWall 2004-06-29
  • 打赏
  • 举报
回复
你的EditMask控件Mask页签下的mask和MaskDataType分别是什么?



可以在EditMask控件的getfocus()中写上如下的代码:

this.selecttext(1,len(this.text))
entertcl 2004-06-29
  • 打赏
  • 举报
回复
用模拟键盘设计可以实现
我用这此代码实现了小键盘控制的功能,你的功能可以通过其它按键来实现,你可以一试
$PBExportHeader$u_sp_keypresser.sru
$PBExportComments$模拟按键
forward
global type u_sp_keypresser from nonvisualobject
end type
end forward

global type u_sp_keypresser from nonvisualobject
end type
global u_sp_keypresser u_sp_keypresser

type prototypes
subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library 'user32.dll'
end prototypes

forward prototypes
public function integer key (string as_key)
public function integer press (string as_key)
public function integer release (string as_Key)
public subroutine numkey (keycode key)
end prototypes

public function integer key (string as_key);//
// 功能:模拟按键
//

this.press(as_Key)
this.release(as_Key)

return 1


end function

public function integer press (string as_key);//
// 功能:模拟按下键
//

int li_Ascii

li_Ascii = Asc(as_Key)

keybd_event(li_Ascii, 0, 0, 0)

return 1


end function

public function integer release (string as_Key);//
// 功能:模拟释放键
//

int li_Ascii

li_Ascii = Asc(as_Key)

keybd_event(li_Ascii, 0, 2, 0)

return 1



end function

public subroutine numkey (keycode key);String ls_KeyASC
Choose Case Key
Case key1!,keynumpad1!
ls_KeyASC = "1"
Case key2!,keynumpad2!
ls_KeyASC = "2"
Case key3!,keynumpad3!
ls_KeyASC = "3"
Case key4!,keynumpad4!
ls_KeyASC = "4"
Case key5!,keynumpad5!
ls_KeyASC = "5"
Case key6!,keynumpad6!
ls_KeyASC = "6"
Case key7!,keynumpad7!
ls_KeyASC = "7"
Case key8!,keynumpad8!
ls_KeyASC = "8"
Case key9!,keynumpad9!
ls_KeyASC = "9"
Case key0!,keynumpad0!
ls_KeyASC = "10"
Case keyenter!
ls_KeyASC = "enter"
End Choose


key(ls_KeyASC)
end subroutine
on u_sp_keypresser.create
TriggerEvent( this, "constructor" )
end on

on u_sp_keypresser.destroy
TriggerEvent( this, "destructor" )
end on

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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