Crom.Controls.Docking 是一个用于.NET应用程序的控件,它允许开发者创建和管理复杂的布局。本文将介绍如何在项目中使用这个控件,包括添加表单、停靠、撤销停靠、移除表单以及如何保存和恢复布局状态。
Crom.Controls.Docking 的第二版带来了以下新增和更改的功能:
要在项目中使用 Crom.Controls.Docking 控件,请按照以下步骤操作:
首先,需要使用以下方法向 guider 添加表单:
DockableFormInfo Add(Form form, zAllowedDock allowedDock, Guid formIdentifier)
参数说明:
可以使用以下方法之一将之前添加到容器中的表单停靠:
void DockForm(DockableFormInfo info, DockStyle dock, zDockMode mode)
void DockForm(DockableFormInfo info, DockableFormInfo infoOver, DockStyle dock, zDockMode mode)
参数说明:
可以通过调用以下方法来撤销停靠表单:
void Undock(DockableFormInfo info, Rectangle hintBounds)
参数说明:
可以通过调用以下方法从容器中移除表单:
void Remove(DockableFormInfo info)
参数说明:
可以通过调用以下属性获取容器中添加的表单数量:
int Count { get; }
可以通过调用以下属性获取容器中添加的表单信息:
DockableFormInfo GetFormInfoAt(int index)
参数说明:
要切换停靠窗口的自动隐藏模式,应该调用以下方法:
void SetAutoHide(DockableFormInfo info, bool autoHide)
参数说明:
要为表单设置输入,应该设置与表单关联的 DockableFormInfo 对象的 IsSelected 属性为 true。要拦截表单被选中/取消选中的事件,应该连接到与表单关联的 DockableFormInfo 对象的 SelectedChanged 事件。
要将上下文菜单关联到引导表单,应该连接到 DockContainer 控件的 ShowContextMenu 事件。该事件的处理程序应该类似于:
void OnDockerShowContextMenu(object sender, FormContextMenuEventArgs e)
{
contextMenuStrip1.Show(e.Form, e.MenuLocation);
}
要禁用关闭表单,应该连接到 DockContainer 控件的 FormClosing 事件。该事件的处理程序应该类似于:
void OnDockerFormClosing(object sender, DockableFormClosingEventArgs e)
{
DockableFormInfo info = _docker.GetFormInfo(e.Form);
if (info.Id == new Guid("0a3f4468-080b-404e-b012-997b93ed2005"))
{
e.Cancel = true;
}
}
要销毁关闭的表单,应该连接到 DockContainer 控件的 FormClosed 事件。该事件的处理程序应该类似于:
void OnDockerFormClosed(object sender, FormEventArgs e)
{
e.Form.Close();
}
要保存/恢复容器布局,需要使用 DockStateSerializer 类型的对象。要保存容器布局,应该从 DockStateSerializer 调用以下方法:
void Save()
布局状态默认保存在应用程序的本地应用程序数据文件夹中。这个默认路径由 serializer.SavePath 属性提供,可以通过这个成员进行更改。要加载容器布局,应该从 DockStateSerializer 调用以下方法:
void Load(bool clear, FormFactoryHandler formsFactory)
参数说明:
表单工厂方法的签名是:
Form CreateTestForm(Guid identifier)