none
自定义控件,控件的说明文字在哪里设置的? RRS feed

  • 问题

  • 打开工具箱 随意一个控件都会有一个说明文本 用来说明控件的作用

    自定义控件(组件) 编辑时 如何添加像图上的说明? 不是控件上属性的[Description("")],是控件在工具箱里的说明

    2016年7月7日 15:12

答案

  • 参考这里

    https://social.msdn.microsoft.com/Forums/en-US/d3065c5e-552e-4aa1-97e3-769441c467b6/toolbox-tab-and-control-description?forum=csharplanguage

    不创建特性的情况下,这样可以,注意需要从工具栏中手工选择控件所在的程序集后,才可以显示。

    [Description("This is a test for the tooltip in toolbox :)")]
    public partial class TestUC : UserControl
    {
    // ...
    }

    如果要定义与语言相关的特性,比如中文显示中文,英语显示英语,则需要创建一个特性

      [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Parameter | AttributeTargets.Delegate | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter)]
        class LocalizedDescriptionAttribute : DescriptionAttribute
        {
            static string Localize(string key)
            {
                // TODO: lookup from resx, perhaps with cache etc
                return "Something for " + key;
            }
            public LocalizedDescriptionAttribute(string key)
                : base(Localize(key))
            {
            }
        }

    加上特性,同时需要从工具条中选择控件所在的程序集

        [LocalizedDescription("LD_UltraButton")]   
        public partial class UserControl1: UserControl
        {
            public UserControl1()
            {
                InitializeComponent();
            }
        }      


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms


    2016年7月8日 0:49