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

  • 相关阅读:
    leetcode701. Insert into a Binary Search Tree
    leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes
    leetcode 110. Balanced Binary Tree
    leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree
    二叉树
    leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)
    5. Longest Palindromic Substring
    128. Longest Consecutive Sequence
    Mac OS下Android Studio的Java not found问题,androidfound
    安卓 AsyncHttpClient
  • 原文地址:https://www.cnblogs.com/Dincat/p/13462388.html
Copyright © 2011-2022 走看看