假设我的表单A包含一个面板(其中包含许多其他控件)和一个表单B,它是空的.
我可以以编程方式从面板A中分离面板并将其移动到表单B(并可能返回到表单A)吗?
我知道我可以更改面板的所有者但是它可以在不同的表单之间工作吗?
更新:
在一些谷歌搜索后,我看到有一个ParentWindow属性.
正如其他人所指出的,在不改变所有权的情况下更改控件的父窗口存在一些问题,如果控件所有者有多个控件,则更改控件所有者可能会很困难...
解决它的一种方法是使用框架代替.一个框架拥有它的所有子控件,所以你需要做的就是改变框架的所有者和父级,其他一切都会随之出现.此方法还允许您将所有事件处理程序和粘合代码保存在一个位置.
N - [
War*_* P 4
通过真正使用 TForm 来实现面板的用途,您可以轻松地让某些东西看起来像面板,也可以作为表单。然后在运行时将窗体停靠到为此目的留有空白面板的位置,并以相同的方式在运行时取消停靠它。
您无法取消停靠 TPanel 并将其显示为顶级表单窗口,但您可以获取顶级表单窗口并将其停靠在代码中。要获得您想要的外观和功能,您必须使用正确的工具(在本例中为 TForm)。
顺便说一句,像 Toolbar 2000 这样的组件库确实允许基于工具栏面板的浮动工具栏窗口,因此,如果您确实坚持让所有 designtim 元素在设计时保持一种形式,您应该研究一下它在 Toolbar 2000 中的工作原理。其中有很多代码用于以“取消停靠/浮动”模式呈现工具栏,并处理鼠标驱动的工具栏停靠和从工具栏停靠中取消停靠。
| 归档时间: |
|
| 查看次数: |
3472 次 |
| 最近记录: |