winform实现sliding bar滑动界面

By admin at 2018-09-09 • 0人收藏 • 1316人看过

目前,

有两种方式:

1,考虑有两个custom界面,分别调用不同的子界面,初始化的时候界面A显示整个界面,界面B显示界面的最左边部分。 当点击右边B界面的时候,右边B界面展开,左边A界面收缩只显示右边部分界面。依次类推

2,用四个form子界面,两个custom实现.。初始化的时候,左边显示的是大界面A,右边显示小界面B , 点击小界面B之后,左侧开始收缩,显示小界面A,右侧展开,显示大界面B,依次类推。

3 个回复 | 最后更新于 2018-09-10
2018-09-09   #1

优缺点:

第一种方式,要求界面AB的左右方要一致,而且必须是右侧固定边距。这个写的时候就不是很灵活。

第二种方式,四个界面可以分别做, 想要显示什么就写什么,不用去可以调整界面。但是实现滑动收缩和展开还要切换界面估计会闪烁。

2018-09-09   #2
import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio工程17";right=959;bottom=642)
mainForm.add(
button={cls="button";text="Button";left=174;top=604;right=625;bottom=643;z=3};
custom={cls="custom";text="自定义控件";left=0;top=0;right=193;bottom=592;bgcolor=8421376;db=1;dl=1;dt=1;z=1};
custom2={cls="custom";text="自定义控件";left=192;top=0;right=960;bottom=592;bgcolor=15780518;db=1;dl=1;dr=1;dt=1;z=2}
)
/*}}*/


import console
console.open()
mainForm.button.oncommand = function(id,event){
    console.log(mainForm.custom2.dl)
    //点击一次取消或者设置固定边距
    mainForm.custom2.dl = !mainForm.custom2.dl?1:null;
    //重设大小,这样就会按照调整后的大小移动了
    var x,y,cx,cy =  mainForm.custom2.getPos();
    mainForm.custom2.left = x;
    mainForm.custom2.top = y;
    mainForm.custom2.right = x+cx;
    mainForm.custom2.bottom = y+cy;
    
    
	
}



mainForm.show();
return win.loopMessage();


2018-09-10   #3
import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio工程17";right=949;bottom=642)
mainForm.add(
button={cls="button";text="固定/取消 ";left=0;top=604;right=192;bottom=643;z=3};
button2={cls="button";text="来回翻转";left=291;top=604;right=386;bottom=643;z=4};
custom={cls="custom";text="自定义控件";left=0;top=0;right=750;bottom=592;bgcolor=8421376;db=1;dl=1;dt=1;z=2};
custom2={cls="custom";text="自定义控件";left=200;top=0;right=950;bottom=592;bgcolor=15780518;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/

import console
console.open()

var rePos = function( winform , pos = "left",flag=true ){
    //true->开启,false->关闭
    select(pos) {
    	case "left" {
    		winform.dl = flag?1:null;
    	}
    	case "right" {
    		winform.dr = flag?1:null;
    	}
    	case "top" {
    		winform.dt = flag?1:null;
    	}
    	case "bottom" {
    		winform.db = flag?1:null;
    	}
    }
	
	//重设大小,这样就会按照调整后的大小移动了
    var x,y,cx,cy =  winform.getPos();
    winform.left = x;
    winform.top = y;
    winform.right = x+cx;
    winform.bottom = y+cy;
	
}

var setRightFormPos = function(winform ,width=200 , flag=true/* 右移动 */ ){
    
	winform.setPos( flag?(winform.parent.width-width):width ,0);

	
}



mainForm.button.oncommand = function(id,event){
    console.log(mainForm.custom2.dl)
    rePos(mainForm.custom2,"left",false);
     
        
}
var yyflag = true;
mainForm.button2.oncommand = function(id,event){
    
	setRightFormPos(mainForm.custom2,,yyflag);
	yyflag = !yyflag?true:false;
	
}



mainForm.show();
return win.loopMessage();


登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



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

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

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...