用plus实现文本编辑的时候改变编辑框的外观
By
admin
at 2019-08-05 • 1人收藏 • 1361人看过
2019-08-06更新:
一鹤jacen升级了plus的边框功能, 现在已经可以很简便的实现 , 输入焦点动态边框效果了
import win.ui; /*DSG{{*/ var winform = win.form(text="plus编辑框动态效果测试";right=328;bottom=217;bgcolor=16777215) winform.add( plus={cls="plus";left=63;top=115;right=274;bottom=153;align="left";border={color=-2302756;radius=4;width=1};editable=1;font=LOGFONT(h=-14;name='微软雅黑');notify=1;textPadding={left=6;top=10};z=1}; plus2={cls="plus";left=60;top=58;right=271;bottom=96;align="left";border={color=-2302756;radius=20;width=1};editable=1;font=LOGFONT(h=-14;name='微软雅黑');notify=1;textPadding={left=10;top=10;right=10};z=2} ) /*}}*/ winform.plus2.skin( border = { focus = {width=3;color=0xff000000;radius=15}; } ) winform.plus.skin( border = { focus = {left=3;bottom=3;top=3;right=3;color=0xff000000;/*radius=4*/}; } ) winform.show() win.loopMessage();
下面是旧版本之前实现同样的效果需要写的代码:
看看就好, 学习实现的思路,哈
试了拦截消息, 试了直接改skin , 下面这种方式最简单,哈
曲线救国, 实现就好
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469;bgcolor=16777215) winform.add( edit={cls="edit";text="Edit";left=111;top=362;right=239;bottom=408;edge=1;multiline=1;z=3}; edit2={cls="edit";text="Edit";left=328;top=359;right=427;bottom=398;edge=1;z=4}; plus={cls="plus";left=271;top=164;right=482;bottom=202;align="left";border={color=-2302756;radius=4;width=1};editable=1;font=LOGFONT(h=-14;name='微软雅黑');notify=1;textPadding={left=6;top=12};z=1} ) /*}}*/ //主要是针对check的状态来改变外观 winform.plus.skin( border = { default={left=1;bottom=1;top=1;right=1;color=0xff000000}; } checked = { border = { default={left=3;bottom=3;top=3;right=3;color=0xff000000}; }; }; ) //下面为了偷懒,使用了事件接收器 import win.ui.tracker; var editb = win.ui.tracker(winform.plus.editBox); //获取焦点 editb.onFocusGot = function(wParam,lParam){ winform.plus.checked = true; } //失去焦点 editb.onFocusLost = function(wParam,lParam){ winform.plus.checked = false; } winform.show() win.loopMessage();
1 个回复 | 最后更新于 2019-09-11
登录后方可回帖
上次看到群里有人问:
怎么在改变边框颜色的同时改变字体的颜色?
测试了下, 用state状态判断就可以.