• 全部
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

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

chido 2004-06-29 11:55:52
我知道要用SelectText,但是这个函数需要设置其实位置,
可是EditMask中没有值的时候默认显示一个0,这个时候EditMask的长度也为0,
因此也选不中,但是我现在需要选中这个默认的0,因为如果不选择这个默认的0,
光标在这个0前,输入一个数字,如9,立刻EditMask的内容就是90了,而输入之前,
EditMask虽然显示0,但是内容是空的,此时如果你输入0,内容才会是0。
...全文
177 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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

回复
相关推荐
发帖
PowerBuilder
创建于2007-09-28

852

社区成员

PowerBuilder 相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-06-29 11:55
社区公告
暂无公告