带标题的窗口窗体






1.22/5 (9投票s)
2007 年 6 月 4 日
1分钟阅读

24862

321
一篇关于看起来像 Windows 安装程序窗体的文章。
引言
本文档描述了如何使用带有漂亮视图的TitledForm
类表单。该项目的核心思想是使用简单的 .NET GDI 来绘制窗口的必要元素——例如线条,以及模拟文本阴影。
使用代码
第一步是创建一个新的表单;然后你需要从 TitledForm 继承。为了做到这一点,你必须将 TitledForm 源代码文件添加到你的项目中,如以下代码所示
namespace TitledWindowTest
{
public partial class Form1 : Chelindbank.Tools.WinForms.TitledForm
{
///.......
}
}
完成此步骤后,Form1 将具有以下参数,你可以在表单设计器属性窗口的“标题”部分找到这些参数
MainTitle
- 这用于在表单顶部的标题中设置 MainTitle 标签文本。Description
- 这用于在表单顶部的标题中设置 Description 标签文本。SubTitle
- 这用于在表单底部设置 SubTitle 标签文本。
作为最后一步,你可以按如下方式设置参数
void Form_Load(object sender, EventArgs e)
{
this.Description = "Make your choise";
this.MainTitle = "My application name";
this.SubTitle = "The super app";
}
变更
最新的更新包括处理表单状态事件的最大化和还原。当SubTitle
标签的位置发生变化时,我们会捕获它并检查表单的状态是否为Maximized
。如果是,我们会使新的底部线条区域失效,并使先前的线条区域失效以清除它。为了存储SubTitle
及其线条的最新位置,我们会在每次调整大小后存储其位置。
private void TitledForm_ResizeEnd(object sender, EventArgs e)
{
// .........<skipped>.........
TitledForm_ResizeBegin(sender, e);
}
private void lblSubTitle_LocationChanged(object sender, EventArgs e)
{
/// Form is needed to be recalculated
if (WindowState == FormWindowState.Maximized)
{
IsMaximized = true;
TitledForm_ResizeEnd(sender, e);
}
else
/// Is needed to be recalculated again
if (WindowState == FormWindowState.Normal && IsMaximized)
{
IsMaximized = false;
TitledForm_ResizeEnd(sender, e);
}
}
历史
- 2007年6月4日 -- 原始版本发布到 CodeProject.com 的主要文章库
- 2007年6月8日 -- 文章和下载已更新(请参阅“更改”部分)