public partial class textbox1 : System.Windows.Forms.TextBox
{
private void FindConterHelppr()
        {
            string formname = this.FindForm().Name;
            string nam = this.GetType().Namespace;            string aa = "Form2" + SetHelpTextBoxKeys;
            System.Windows.Forms.HelpProvider h = null;
            if (h == null)
                h = new System.Windows.Forms.HelpProvider();
            h.SetHelpString(this, aa);
        }
 [Category("HelpTextBoxKeys"), Description("HelpTextBox")]
        public string SetHelpTextBoxKeys
        {
            set
            {
                value = this.Name;
                if (value.Length != 0)
                {
                    sethelptextboxkeys = value;
                    FindConterHelppr();
                }
            }
            get { return sethelptextboxkeys; }        }
}

解决方案 »

  1.   

    string formname = this.FindForm().Name;这个this.FindForm()是什么方法啊。
    怎么实现的?
    你这里都是null了。后面还有什么意义呢~
      

  2.   

    抱歉,是我孤陋寡闻了。刚看了一下,这个方法居然是.net自带的...
      

  3.   

    你在调用FindForm时,要先判断,
    if(this.FindForm()!=null ){
      formname = this.FindForm().Name;
    }
      

  4.   

    Return Value
    The Form that the control is on. 或许你的控件和当前FORM没有包含关系。
    可以直接把FORM的名字存下来,STRING传过来用啊。
      

  5.   

    主要看SetHelpTextBoxKeys调用的时机
      

  6.   

    你在哪里调用SetHelpTextBoxKeys设置属性的