zoukankan      html  css  js  c++  java
  • 轻松定制标题栏

    介绍 嗨朋友。我想给你另一个甜蜜的标题栏,将使你的应用程序美丽。我花了很多时间在网上找这样的标题栏,但我没有找到。但是在搜索的过程中,我选择了一些关键点来创建自己的标题栏。不好意思,我不记得我从哪里选的这些观点。但我应该对他们致以崇高的敬意。如果我再次找到它们,我会把它们放在我的文章中。 根据我的发现和使用我的知识,我将向您展示一个可定制的标题栏控件,它将节省您的时间。另一件事是,这还不能完全定制。这是为了让你理解在c# . net中创建这样一个控件是多么容易。在这个创建过程中,我使用了以前的control of control框来创建这个标题栏。我将解释如何为窗体创建控件框。然后我将继续使用标题栏,它更容易开发。 使用的代码 尽管您拥有本文中的代码,但您可以根据需要更改外观。此控件提供与Windows控件框相同的功能。 创建一个c#“Windows控件库”项目,你就可以实现所有这些奇迹。在控件窗体上放置三个标签控件,并为它们分配图像。为了在光标移动时突出显示按钮,我们必须捕获每个标签控件的鼠标移动事件,并添加以下代码段… 隐藏,复制Code

    private void lblMinimize_MouseMove(object sender, MouseEventArgs e) 
    {  
         lblMinimize.Image = global::window_control_box.Properties.Resources.minimize_sele;}

    …在标签控件中,必须为反映鼠标移动效果的控件设置另一个图像。对于这些事情,你可以使用任何图像编辑/创建软件。 我不打算讲细节,因为这很简单。所以您可以为所有三个标签添加这些代码段。 接下来是如何创建最小化、最大化和关闭这些行为。为此,你必须在标签控件的单击事件上添加以下代码段: 隐藏,复制Code

    Private void lblClose_Click(object sender, EventArgs e)
    {
    	this.ParentForm.Close();   
    }

    隐藏,复制Code

    private void lblMaximize_Click(object sender, EventArgs e) 
    {
            if (this.ParentForm.WindowState == FormWindowState.Maximized)
            {
    	       this.ParentForm.WindowState = FormWindowState.Normal;
            }
            else if(this.ParentForm.WindowState == FormWindowState.Normal)
            {
                   this.ParentForm.WindowState = FormWindowState.Maximized;
            }
            this.ParentForm.Show();
    }

    这里,我们所做的不是调用控件窗体的close方法,而是调用控件所在位置的父窗体。这对我们有帮助。 我在最大化点击事件中做了一些小的改变,使其行为与窗口最大化按钮的行为相同。 要启用最大化、最小化和关闭按钮作为用户的属性,我们只需要添加以下代码段: 隐藏,收缩,复制Code

    [Category("Appearance")] 
    [Description("Gets or sets maximize button visibility")]
    public bool Maximize
    {
        set
        {
            lblMaximize.Visible = value;  
        }
        get
        {
            return lblMaximize.Visible; 
        } 
    }
    
    [Category("Appearance")]
    [Description("Gets or sets minimize button visibility")]
    public bool Minimize
    { 
        set
        {
            lblMinimize.Visible = value;
        }
        get
        {
            return lblMinimize.Visible;
        } 
    }  
    
    [Category("Appearance")]
    [Description("Gets or sets close button visibility")]
    public bool Close
    {
        set
        {
            lblClose.Visible = value;
        }
        get
        {
            return lblClose.Visible;
        } 
    } 

    这就是创建“控制框”控件所需要执行的全部操作。一旦编译,就会得到一个DLL。您可以简单地在您的下一个控件创建项目中使用该DLL作为可视化控件。你所要做的就是在c#的工具箱面板上点击右键,然后点击“选择项目…”。从那里,您浏览这个DLL并单击OK。然后将此控件拖放到project Windows窗体上。 这里我附上了两个项目,创建了标题栏和控制框。在这两种方法的帮助下,我确信您可以创建自己的标题栏。 如何在你的应用程序中使用标题栏 将这两个DLL文件复制到您的应用程序源文件夹中,该文件夹是作为TitleBarControl项目的编译而产生的。正如我上面解释的,使用“choose items…”将控件添加到工具箱中。 将标题栏控件拖放到你的应用程序中,并将该控件的Doc属性设置为“top”。在属性对话框中,您可以看到标题栏控件的标题、标题字体、标题前面板、标题backcolor属性。您可以设置这些属性,也可以根据需要进行自定义。 显示文本有一个限制。标题栏的显示区域是固定的。我将在不久的将来提供一个增强版本。因为您拥有标题栏控件的代码,所以可以通过进行一些修改轻松克服这种情况。 一旦你将Doc属性设置为“Top”,你就必须使用FormBorderStyle属性来移除传统的windows标题。你可以选择form border style none或者你可以做一些技巧来移除标题栏,比如设置: ControlBox = false FormBorderStyle = FixedSingle Text = ""(应为空白) 一旦您如上所示设置了表单属性,您将获得具有自己标题栏的表单。 如果要更改控件的外观,则必须修改在FormTitleBar和控件框控件中使用的图像。 更多的技巧。 如何申请MDI表格 如果有MDI格式的菜单,可以将“FormTitileBar”控件拖放到菜单上。然后它会得到主菜单下面的位置。要向上移动,右键点击“FormTitleBar”控件,然后点击“发送回”选项。这个就行了。 在你应用这个标题栏的所有窗体中,你必须通过调整窗体的属性来取出窗口的标题栏。 历史 2009年9月11日:初任 本文转载于:http://www.diyabc.com/frontweb/news5181.html

  • 相关阅读:
    第十章:Android消息机制
    第九章:四大组件的工作过程
    第八章:理解Window和WindowManager
    第七章:Android动画深入分析
    第六章:Android的Drawable
    第五章:理解RemoteViews
    第四章:View的工作原理
    第三章:View的事件体系
    chr()返回值是当前整数对应的 ASCII 字符。
    遍历从左到右,打印子串在字符串中出现的次数
  • 原文地址:https://www.cnblogs.com/Dincat/p/13462388.html
Copyright © 2011-2022 走看看