用plus实现文本编辑的时候改变编辑框的外观

By admin at 2019-08-05 • 1人收藏 • 1380人看过

2019-08-06更新:

一鹤jacen升级了plus的边框功能, 现在已经可以很简便的实现 , 输入焦点动态边框效果了

GIF.gif

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 , 下面这种方式最简单,哈

曲线救国, 实现就好

GIF.gif

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
2019-09-18   #1

上次看到群里有人问:

怎么在改变边框颜色的同时改变字体的颜色?

测试了下, 用state状态判断就可以.

winform.plus2.onStateChange = function(state){
    //导出所有状态
    //console.dump(state);
    //判断当前状态
	if(state.focus == true){
		//改变字体颜色
		winform.plus2.editBox.color = 0x0055cc;
	}else {
		winform.plus2.editBox.color = 0x000000;
	}
	
}

GIF.gif

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...