呈现控件时出错
发生了处理的异常
未将对像引用设置到对像的实例这是什么意思 呢      protected override void RenderContents(HtmlTextWriter output)
        {
           // output.Write(Text);
            //将要呈现的HTML属性添加到指定的System.Web.HtmlTextWriter中
           // AddAttributesToRender(output);
          //  output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Cellpadding, "0", false);
            //制定一个表,把子控件排在一行上            output.RenderBeginTag(HtmlTextWriterTag.Table);  //表            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
            output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
            this._LBname.RenderControl(output);
            output.RenderEndTag();
            output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
            this._TBname.RenderControl(output);
            output.RenderEndTag();
            output.RenderEndTag();            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
            output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
            this._LBPwd.RenderControl(output);
            output.RenderEndTag();
            output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
            this._TBPwd.RenderControl(output);
            output.RenderEndTag();
            output.RenderEndTag();
            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
            output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
            this._BTLogOn.RenderControl(output);
            output.RenderEndTag();
            output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
            this._BTCancel.RenderControl(output);
            output.RenderEndTag();
            output.RenderEndTag();            output.RenderEndTag();            output.WriteEncodedText("AA");
        }那位帮忙 呢 谢谢啦!!

解决方案 »

  1.   

    如果 把 上面的 注解 output.WriteEncodedText("AA"); 
    有时也能 打印出 
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;namespace MYControl
    {
        [DefaultProperty("Text")]
        [ToolboxData("<{0}:WebLogonForm runat=server></{0}:WebLogonForm>")]
        public class WebLogonForm : System.Web.UI.WebControls.WebControl, INamingContainer
        {        private  System.Web.UI.WebControls.Label _LBname;        /// <summary>
            /// 设置或获取“用户名”这个文字 
            /// </summary>
            public string LBNameText
            {
                get { return _LBname.Text; }
                set { _LBname.Text = value; }
            }
            private  System.Web.UI.WebControls.Label _LBPwd;
            /// <summary>
            ///设置或获取“密码”这个文字 
            /// </summary>
            public string  LBPwdText
            {
                get { return _LBPwd.Text; }
                set { _LBPwd.Text = value; }
            }
            private System.Web.UI.WebControls.TextBox _TBname;
            /// <summary>
            /// 设置或获取用户名
            /// </summary>
            public string  TBNameText
            {
                get { return _TBname.Text; }
                set { _TBname.Text = value; }
            }
            private System.Web.UI.WebControls.TextBox _TBPwd;
            /// <summary>
            /// 设置或获取用户密码
            /// </summary>
            public string TBPwdText
            {
                get { return _TBPwd.Text; }
                set { _TBPwd.Text = value; }
            }
            private System.Web.UI.WebControls.Button _BTLogOn;
            /// <summary>
            /// 设置或获取登录按钮的文字
            /// </summary>
            public System.Web.UI.WebControls.Button BTLogOn
            {
                get { return _BTLogOn; }
                set { _BTLogOn = value; }
            }
            private System.Web.UI.WebControls.Button _BTCancel;
            /// <summary>
            /// 设置或获取取消按钮的文字
            /// </summary>
            public System.Web.UI.WebControls.Button BTCancel
            {
                get { return _BTCancel; }
                set { _BTCancel = value; }
            }        public event WebLogonButtonEventHandler BTLogOnOnClick;
           //{
           //    add
           //    {
           //        this.BTLogOnOnClick+=new WebLogonButtonEventHandler(value);
           //        //this.BTLogOn.Click+= new (EventHandler)WebLogonButtonEventHandler(value);
           //    }
           //    remove
           //    {
           //        this.BTLogOnOnClick -= new WebLogonButtonEventHandler(value);
           //    }
           //}        public event WebLogonButtonEventHandler BTCancelOnClick;
            //{
            //    add
            //    {
            //        this.BTCancelOnClick += new WebLogonButtonEventHandler(value);
            //    }
            //    remove
            //    {
            //        this.BTCancelOnClick += new WebLogonButtonEventHandler(value);
            //    }
            //}        //重载Controls属性,取得ControlCollection对象,该对象表示UI层次结构中的服务器控件的子控件
            //public override ControlCollection Controls
            //{
            //    get
            //    {
            //        //确定服务器是否包含子控件
            //        EnsureChildControls();
            //        return base.Controls;
            //    }
            //}       //动态创建子控件
            protected override void CreateChildControls()
            {
                
                this.Controls.Clear();
                this._TBname = new TextBox();
                this._TBPwd = new TextBox();
                this._LBname = new Label();
                this._LBPwd = new Label();
                this._BTLogOn = new Button();
                this._BTCancel = new Button();            this._BTLogOn.Click += new EventHandler(_BTLogOn_Click);
                this._BTCancel.Click += new EventHandler(_BTCancel_Click);
                base.CreateChildControls();
            }        void _BTCancel_Click(object sender, EventArgs e)
            {
                if (this.BTCancelOnClick!=null)
                {
                    this.BTCancelOnClick(this,e);
                }
            }        void _BTLogOn_Click(object sender, EventArgs e)
            {
                if (this.BTLogOnOnClick!=null)
                {
                    this.BTLogOnOnClick(this,e); 
                }
            }        /// <summary>
            ///  将此控件呈现给指定的输出参数
            /// </summary>
            /// <param name="output">要写出到的 HTML 编写器</param>
            protected override void RenderContents(HtmlTextWriter output)
            {
                output.Write(Text);
               // 将要呈现的HTML属性添加到指定的System.Web.HtmlTextWriter中
                AddAttributesToRender(output);
                output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Cellpadding, "0", false);
                //制定一个表,把子控件排在一行上            output.RenderBeginTag(HtmlTextWriterTag.Table);  //表            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._LBname.RenderControl(output);
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._TBname.RenderControl(output);
                output.RenderEndTag();
                output.RenderEndTag();            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._LBPwd.RenderControl(output);
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._TBPwd.RenderControl(output);
                output.RenderEndTag();
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._BTLogOn.RenderControl(output);
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._BTCancel.RenderControl(output);
                output.RenderEndTag();
                output.RenderEndTag();            output.RenderEndTag();
                output.WriteEncodedText("AAA");
            }
            [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string Text
            {
                get
                {
                    String s = (String)ViewState["Text"];
                    return ((s == null) ? String.Empty : s);
                }            set
                {
                    ViewState["Text"] = value;
                }
            }    }
    }
    那位帮我看看呢 真的 不知道错在那里 是一 个 用户登录的 FORM  
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;namespace MYControl
    {
        [DefaultProperty("Text")]
        [ToolboxData("<{0}:WebLogonForm runat=server></{0}:WebLogonForm>")]
        public class WebLogonForm : System.Web.UI.WebControls.WebControl, INamingContainer
        {        private  System.Web.UI.WebControls.Label _LBname;        /// <summary>
            /// 设置或获取“用户名”这个文字 
            /// </summary>
            public string LBNameText
            {
                get { return _LBname.Text; }
                set { _LBname.Text = value; }
            }
            private  System.Web.UI.WebControls.Label _LBPwd;
            /// <summary>
            ///设置或获取“密码”这个文字 
            /// </summary>
            public string  LBPwdText
            {
                get { return _LBPwd.Text; }
                set { _LBPwd.Text = value; }
            }
            private System.Web.UI.WebControls.TextBox _TBname;
            /// <summary>
            /// 设置或获取用户名
            /// </summary>
            public string  TBNameText
            {
                get { return _TBname.Text; }
                set { _TBname.Text = value; }
            }
            private System.Web.UI.WebControls.TextBox _TBPwd;
            /// <summary>
            /// 设置或获取用户密码
            /// </summary>
            public string TBPwdText
            {
                get { return _TBPwd.Text; }
                set { _TBPwd.Text = value; }
            }
            private System.Web.UI.WebControls.Button _BTLogOn;
            /// <summary>
            /// 设置或获取登录按钮的文字
            /// </summary>
            public System.Web.UI.WebControls.Button BTLogOn
            {
                get { return _BTLogOn; }
                set { _BTLogOn = value; }
            }
            private System.Web.UI.WebControls.Button _BTCancel;
            /// <summary>
            /// 设置或获取取消按钮的文字
            /// </summary>
            public System.Web.UI.WebControls.Button BTCancel
            {
                get { return _BTCancel; }
                set { _BTCancel = value; }
            }        public event WebLogonButtonEventHandler BTLogOnOnClick;
           //{
           //    add
           //    {
           //        this.BTLogOnOnClick+=new WebLogonButtonEventHandler(value);
           //        //this.BTLogOn.Click+= new (EventHandler)WebLogonButtonEventHandler(value);
           //    }
           //    remove
           //    {
           //        this.BTLogOnOnClick -= new WebLogonButtonEventHandler(value);
           //    }
           //}        public event WebLogonButtonEventHandler BTCancelOnClick;
            //{
            //    add
            //    {
            //        this.BTCancelOnClick += new WebLogonButtonEventHandler(value);
            //    }
            //    remove
            //    {
            //        this.BTCancelOnClick += new WebLogonButtonEventHandler(value);
            //    }
            //}        //重载Controls属性,取得ControlCollection对象,该对象表示UI层次结构中的服务器控件的子控件
            //public override ControlCollection Controls
            //{
            //    get
            //    {
            //        //确定服务器是否包含子控件
            //        EnsureChildControls();
            //        return base.Controls;
            //    }
            //}       //动态创建子控件
            protected override void CreateChildControls()
            {
                
                this.Controls.Clear();
                this._TBname = new TextBox();
                this._TBPwd = new TextBox();
                this._LBname = new Label();
                this._LBPwd = new Label();
                this._BTLogOn = new Button();
                this._BTCancel = new Button();            this._BTLogOn.Click += new EventHandler(_BTLogOn_Click);
                this._BTCancel.Click += new EventHandler(_BTCancel_Click);
                base.CreateChildControls();
            }        void _BTCancel_Click(object sender, EventArgs e)
            {
                if (this.BTCancelOnClick!=null)
                {
                    this.BTCancelOnClick(this,e);
                }
            }        void _BTLogOn_Click(object sender, EventArgs e)
            {
                if (this.BTLogOnOnClick!=null)
                {
                    this.BTLogOnOnClick(this,e); 
                }
            }        /// <summary>
            ///  将此控件呈现给指定的输出参数
            /// </summary>
            /// <param name="output">要写出到的 HTML 编写器</param>
            protected override void RenderContents(HtmlTextWriter output)
            {
                output.Write(Text);
               // 将要呈现的HTML属性添加到指定的System.Web.HtmlTextWriter中
                AddAttributesToRender(output);
                output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Cellpadding, "0", false);
                //制定一个表,把子控件排在一行上            output.RenderBeginTag(HtmlTextWriterTag.Table);  //表            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._LBname.RenderControl(output);
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._TBname.RenderControl(output);
                output.RenderEndTag();
                output.RenderEndTag();            output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._LBPwd.RenderControl(output);
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._TBPwd.RenderControl(output);
                output.RenderEndTag();
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Tr);     //行
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._BTLogOn.RenderControl(output);
                output.RenderEndTag();
                output.RenderBeginTag(HtmlTextWriterTag.Td);     //列
                this._BTCancel.RenderControl(output);
                output.RenderEndTag();
                output.RenderEndTag();            output.RenderEndTag();
                output.WriteEncodedText("AAA");
            }
            [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string Text
            {
                get
                {
                    String s = (String)ViewState["Text"];
                    return ((s == null) ? String.Empty : s);
                }            set
                {
                    ViewState["Text"] = value;
                }
            }    }
    }
    那位帮我看看呢 真的 不知道错在那里 是一 个 用户登录的 FORM  
      

  4.   

    可以了 using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;namespace MYControl
    {
        [DefaultProperty("Text")]
        [ToolboxData("<{0}:WebLogonForm runat=server></{0}:WebLogonForm>")]
        public class WebLogonForm : CompositeControl
        {
            private Table containerTable=null;
            private  System.Web.UI.WebControls.Label _LBname;        /// <summary>
            /// 设置或获取“用户名”这个文字 
            /// </summary>
            public string LBNameText
            {
                get { return _LBname.Text; }
                set { _LBname.Text = value; }
            }
            private  System.Web.UI.WebControls.Label _LBPwd;
            /// <summary>
            ///设置或获取“密码”这个文字 
            /// </summary>
            public string  LBPwdText
            {
                get { return _LBPwd.Text; }
                set { _LBPwd.Text = value; }
            }
            private System.Web.UI.WebControls.TextBox _TBname;
            /// <summary>
            /// 设置或获取用户名
            /// </summary>
            public string  TBNameText
            {
                get { return _TBname.Text; }
                set { _TBname.Text = value; }
            }
            private System.Web.UI.WebControls.TextBox _TBPwd;
            /// <summary>
            /// 设置或获取用户密码
            /// </summary>
            public string TBPwdText
            {
                get { return _TBPwd.Text; }
                set { _TBPwd.Text = value; }
            }
            private System.Web.UI.WebControls.Button _BTLogOn;
            /// <summary>
            /// 设置或获取登录按钮的文字
            /// </summary>
            public System.Web.UI.WebControls.Button BTLogOn
            {
                get { return _BTLogOn; }
                set { _BTLogOn = value; }
            }
            private System.Web.UI.WebControls.Button _BTCancel;
            /// <summary>
            /// 设置或获取取消按钮的文字
            /// </summary>
            public System.Web.UI.WebControls.Button BTCancel
            {
                get { return _BTCancel; }
                set { _BTCancel = value; }
            }        public event WebLogonButtonEventHandler BTLogOnOnClick;
           //{
           //    add
           //    {
           //        this.BTLogOnOnClick+=new WebLogonButtonEventHandler(value);
           //        //this.BTLogOn.Click+= new (EventHandler)WebLogonButtonEventHandler(value);
           //    }
           //    remove
           //    {
           //        this.BTLogOnOnClick -= new WebLogonButtonEventHandler(value);
           //    }
           //}        public event WebLogonButtonEventHandler BTCancelOnClick;
            //{
            //    add
            //    {
            //        this.BTCancelOnClick += new WebLogonButtonEventHandler(value);
            //    }
            //    remove
            //    {
            //        this.BTCancelOnClick += new WebLogonButtonEventHandler(value);
            //    }
            //}        //重载Controls属性,取得ControlCollection对象,该对象表示UI层次结构中的服务器控件的子控件
            //public override ControlCollection Controls
            //{
            //    get
            //    {
            //        //确定服务器是否包含子控件
            //        EnsureChildControls();
            //        return base.Controls;
            //    }
            //}       //动态创建子控件
            //protected override void CreateChildControls()
            //{
                
            //    //this.Controls.Clear();        //    //base.CreateChildControls();
            //}
            public WebLogonForm()
            {
                this._TBname = new TextBox();
                this._TBPwd = new TextBox();            this._LBname = new Label();
                this._LBname.Text = "用户名:";
                this._LBPwd = new Label();
                this._LBPwd.Text = "密码:";            this._BTLogOn = new Button();
                this._BTLogOn.Text = "登录";
                this._BTCancel = new Button();
                this._BTCancel.Text = "取消";            this.containerTable = new Table();            this._BTLogOn.Click += new EventHandler(_BTLogOn_Click);
                this._BTCancel.Click += new EventHandler(_BTCancel_Click);
            }        protected override void CreateChildControls()
            {
                TableCell cell00 = new TableCell();
                cell00.Controls.Add(this._LBname);
                TableCell cell01 = new TableCell();
                cell01.Controls.Add(this._TBname);
                TableRow row0 = new TableRow();
                row0.Cells.Add(cell00);
                row0.Cells.Add(cell01);
                this.containerTable.Rows.Add(row0);
                TableCell cell10 = new TableCell();
                cell10.Controls.Add(this._LBPwd);
                TableCell cell11 = new TableCell();
                cell11.Controls.Add(this._TBPwd);
                TableRow row1 = new TableRow();
                row1.Cells.Add(cell10);
                row1.Cells.Add(cell11);
                this.containerTable.Rows.Add(row1);            TableCell cell20 = new TableCell();
                cell20.Controls.Add(this._BTLogOn);
                TableCell cell21 = new TableCell();
                cell21.Controls.Add(this._BTCancel);
                TableRow row2 = new TableRow();
                row2.Cells.Add(cell20);
                row2.Cells.Add(cell21);
                this.containerTable.Rows.Add(row2);            this.Controls.Add(this.containerTable);
            }        void _BTCancel_Click(object sender, EventArgs e)
            {
                if (this.BTCancelOnClick!=null)
                {
                    this.BTCancelOnClick(this,e);
                }
            }        void _BTLogOn_Click(object sender, EventArgs e)
            {
                if (this.BTLogOnOnClick!=null)
                {
                    this.BTLogOnOnClick(this,e); 
                }
            }    }
    }