社区
C++ Builder
帖子详情
如何把一个窗体放到Panel上
tangx100
2007-08-20 05:45:06
如何把一个窗体放到Panel上,如果一关闭就可以把Panel一起关闭,调用的时候又在原来的位置显示
如果把窗体从Panel上拖动出来点关闭按钮时,窗体会自动还原来原位?
如何实现
...全文
221
14
打赏
收藏
如何把一个窗体放到Panel上
如何把一个窗体放到Panel上,如果一关闭就可以把Panel一起关闭,调用的时候又在原来的位置显示 如果把窗体从Panel上拖动出来点关闭按钮时,窗体会自动还原来原位? 如何实现
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tangx100
2007-08-24
打赏
举报
回复
不等了,结贴,还是自己尝试吧
tangx100
2007-08-23
打赏
举报
回复
=。。。
wenyongjie
2007-08-23
打赏
举报
回复
关注
Jim@luckeeinc.com
2007-08-22
打赏
举报
回复
季老大都发话了 还不照做
做个frame简单多了 在要用的地方把frame放上去就可以了
你form上有的frame上都会有
tangx100
2007-08-22
打赏
举报
回复
给个具体实例吧
我怎么做也不能实现
laowang2
2007-08-22
打赏
举报
回复
==
FFSB
2007-08-21
打赏
举报
回复
BCB的停靠很差劲,到网上下个Dock管理器
过客猫2022
2007-08-21
打赏
举报
回复
TForm1 * frm = new TForm1(Panel1);
frm->Parent = Panel1;
frm->Show();
这样就可以了。
xgbing
2007-08-21
打赏
举报
回复
帮顶
tangx100
2007-08-21
打赏
举报
回复
是啊,就像i_love_pc说的那样
i_love_pc
2007-08-21
打赏
举报
回复
楼主的意思是想实现停靠窗体吧,类似于
在Example中有个Docking示例,研究一下吧
jishiping
2007-08-21
打赏
举报
回复
把 TForm 改成 TFrame 就可以放在任何位置了。
jingtao
2007-08-21
打赏
举报
回复
设置窗体的parent为panel
tangx100
2007-08-21
打赏
举报
回复
这不是要第三方控件吗?
我不想用
大家帮帮忙
完美Winform异形
窗体
,无白边,无毛边
Winform异形
窗体
,可拖动 无毛边,无白边
窗体
控件自动布局(自动布局
窗体
中控件)
一.该类的作用: 该类可以帮大家自动布局界面控件,不需要开发人员每个控件的设置属性,只需要调用方法,自动会设置该控件的布局,并且控件的宽度随着
窗体
的变化而变化,该方法调用很简单 二.原理:使用TableLayOutPanle的功能,然后设定里面每个控件的样式 三.使用方法: 1)首先在录入数据的地方用GroupBox或者Panle作为容器(目前里面配置了这2中数据信息用户可以在ParentControlHeader类中进行相应配置) 2)然后在该容器中加入TableLayOutPanle控件,并设定行和列(例如:设定6列,奇数列的宽度都是绝对值:例如100px ,偶数列的宽度都设定为33%) 3)大家可以把相应的控件放入到TableLayOutPanle的相应单元格子中,(奇数列是标题列,偶数列是输入列) 4)在Load事件中这样调用就OK了 TableFormat tf = new TableFormat(tableLayout
Panel
1); //此方法可以适用于父级控件是GroupBox或者
Panel
,您也可一修改 ParentControlHeader类中的配置文件,加入新的值,或者是修改已经设定的值 tf.SetTableFormat(true, PControlType.GroupControl); 这样,大家不需要设定每个TableLayout控件中的子控件的任何属性,TableFormat类帮自动布局界面上的控件,并且随着
窗体
的变化,控件是自动变化的,当然里面有些参数,是可以设定父级控件(GroupPanle/Panle的高度=里面行高(自动计算)+用户配置高度(目前配置了GroupBox和Panle) 详细可见Demo,代码注释写的比较详细,大家可以参考下. 谢谢..^_^.. (鼓励0资源分上传)
自定义系统边框控件(实现系统镶边的功能)
在用C#做桌面程序时,有时后会碰到要修改WinForm
窗体
的系统边框样式(系统镶边样式)。如,改变标题栏 的背景,系统图标,系统按钮,或者要做
一个
自己的
窗体
,有自己的背景。那么直接调用win32内部c语言函数 很不方便。怎样才能做有自己的系统边框的C#
窗体
呢? 我想就是有几年工作经验的程序员,也会觉得那是很麻烦的事。那么,为什么不把这个工作封装成
一个
控件呢? 下面,是我自己根据以往的经验,做了
一个
自定义系统边框控件。 使用方法是,自己用图形编辑软件画好
窗体
背景,然后把此图片作为
窗体
的背景图片。 再把form
窗体
的FormBorderStyle属性设置成None; 然后,在
窗体
代码文件中定义
一个
控件类对象:public partial class Form1 : Form { CustomBorder.CustomBorderEx cbe = null; public Form1() { InitializeComponent(); cbe = new CustomBorder.CustomBorderEx(this); } } 就可以定义能实现
窗体
拖动功能的边框。 public partial class Form1 : Form { CustomBorder.CustomBorderEx cbe = null; public Form1() { InitializeComponent(); cbe = new CustomBorder.CustomBorderEx(this, true,new Size(100,100)); } } 上面可以定义
一个
带拖动,拉伸
窗体
,调整大小的边框。 有时候需要在关联的
窗体
上放一些可以随
窗体
大小改变而自动调整成合适大小位置的控件容器,如,
Panel
控件。 那么应该把它的大小和位置定为
一个
客户区内。 得到客户区的方法是 Rectangle rt = cbe.ClientRegion;下面是
一个
可以正常工作的自定义
窗体
。 public partial class Form1 : Form { CustomBorder.CustomBorderEx cbe = null; public Form1() { InitializeComponent(); cbe = new CustomBorder.CustomBorderEx(this, true,new Size(100,100)); Rectangle rt = cbe.ClientRegion; this.
panel
1.Location = new Point(rt.X, rt.Y); this.
panel
1.Size = new Size(rt.Width, rt.Height); } //
窗体
的Resize事件处理程序 private void Form1_Resize(object sender, EventArgs e) { cbe.InvalidateCompute(); Rectangle rt = cbe.ClientRegion; this.
panel
1.Location = new Point(rt.X, rt.Y); this.
panel
1.Size = new Size(rt.Width, rt.Height); } } 上面代码是从边框控件得到可用客户区的位置和大小。 然后,在
窗体
Resize事件相应方法中把
panel
1容器的 位置和大小设置成客户区的值。 注意,在调用cbe.ClientRegion之前,最好先调用cbe.InvalidateCompute();方法一下,重新计算一下边框和客户区的位置和大小。 那么,之后我们只要在
窗体
设计器中,注意把我们的其他一些控件(如,Button 等),
放到
panel
1里面就行。(如果不用上面办法,
panel
1的大小和位置覆盖住整个winform
窗体
的话,会导致边框的事件捕捉不到,出现,不能拖动,不能调整大小的情况。) //------------------ 那么自定义系统边框的控件主要的方法有如下几个: 1构造方法: new CustomBorder.CustomBorderEx(this, true,new Size(100,100)); 第
一个
参数,要关联的winform
窗体
;第二个参数,表示是否可以改变
窗体
的 大小;第三个参数,
窗体
的最小宽和高值。 2属性: cbe.ClientRegion 用来得到
窗体
从新计算后的客户区大小。 3成员方法: cbe.InvalidateCompute();从新计算调整
窗体
后的边框位置和大小,客户区位置和大小。 //----------------- 这个控件的版本是v1.0版的,由于工作忙,业余时间少,可能还不够完美。相信以后的版本会好些。
C#实现了
一个
WinForm下的悬挂窗口;
两天在工作中用C#实现了
一个
WinForm下的悬挂窗口; 之前在网上搜索了几下,没有发现类似的说明,特在此记录一下。 特别说明:所谓悬挂窗口,就是类似QQ聊天工具的
一个
功能,当窗口
放到
桌面的上边界时自动收缩成
一个
小条隐藏起来;而一旦鼠标再次接触到上述边界的时候,窗口又会自动展开。 实现方法有两类,一是窗口内实现悬挂,在窗口内创建
一个
小的
Panel
,正常时不可见,在悬挂是显示, 悬挂时设置窗口标题栏不显示和窗口高度为该
Panel
高度;二是单独窗口悬挂,创建新的窗口作为悬挂时的显示条,同时隐藏掉主窗口。
Winform ToolStrip控件左右拖拽移动效果实现
** 功能描述:ToolStrip控件左右拖拽移动效果实现 * 主
窗体
下部添加
一个
Panel
乘放ToolStrip控件以实现ToolStrip在
窗体
下部定位。 * 当ToolStrip控件中子控件超出屏幕时,拖动控件可以实现滑动效果。拖动到控件边缘距
窗体
边缘1/3宽度时(可设), 自动回弹。拖动控件边缘在屏幕内时释放鼠标,控件自动回弹,边缘吸附
窗体
边缘。 * 当ToolStrip控件中子控件数目较少可以在屏幕上完全显示时,拖动效果不可见。 * 增加 添加、删除 按钮,点击时可增删
一个
ToolStripButton,方便拖动效果可见(ToolStrip控件中子控件超出屏幕) 与不可见(ToolStrip控件中子控件可以在屏幕上完全显示时)的演示。 * 拖动鼠标离开ToolStrip控件再释放,不会触发MouseUp事件,引起控件边缘在屏幕中时释放鼠标自动吸附效果失效。待解决。
C++ Builder
13,824
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章