65.9K
CodeProject 正在变化。 阅读更多。
Home

带标题的窗口窗体

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.22/5 (9投票s)

2007 年 6 月 4 日

1分钟阅读

viewsIcon

24862

downloadIcon

321

一篇关于看起来像 Windows 安装程序窗体的文章。

Screenshot - FormExample.png

引言

本文档描述了如何使用带有漂亮视图的TitledForm类表单。该项目的核心思想是使用简单的 .NET GDI 来绘制窗口的必要元素——例如线条,以及模拟文本阴影。

使用代码

第一步是创建一个新的表单;然后你需要从 TitledForm 继承。为了做到这一点,你必须将 TitledForm 源代码文件添加到你的项目中,如以下代码所示

namespace TitledWindowTest
{
    public partial class Form1 : Chelindbank.Tools.WinForms.TitledForm
    {
        ///.......
    }
}

完成此步骤后,Form1 将具有以下参数,你可以在表单设计器属性窗口的“标题”部分找到这些参数

  • MainTitle - 这用于在表单顶部的标题中设置 MainTitle 标签文本。
  • Description - 这用于在表单顶部的标题中设置 Description 标签文本。
  • SubTitle - 这用于在表单底部设置 SubTitle 标签文本。

Screenshot - ClearTitledForm.png

作为最后一步,你可以按如下方式设置参数

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日 -- 文章和下载已更新(请参阅“更改”部分)
© . All rights reserved.