新建一个web用户控件WebUserControl1.ascx。
在WebUserControl1.ascx新建了一个textbox框 textbox1。
写一个方法
public string getValue()
{
    return textbox1.Text;
}
把WebUserControl1.ascx和一个Button拖拽到WebForm1里面
写Button_Click事件
private void Button_Click(object sender, System.EventArgs e)
{
    WebUserControl1 wcl = new WebUserControl1();
    string s = wcl.getValue();
    Response.Write(s);
}
运行是报错。是说return Text1.Value;未将对象引用设置到对象的实例。
大侠们看看要怎么解决啊?

解决方案 »

  1.   

    public string getValue()
    {
       get{
            return textbox1.Text;
           }
    }
      

  2.   

    WebUserControl1 wcl = new WebUserControl1();
    这个,不对.private WebUserControl1 WebUserControl11;
    private void Button_Click(object sender, System.EventArgs e)
    {
        string s = WebUserControl11.getValue();
        Response.Write(s);
    }
      

  3.   

    造成这种情况的原因:  用户控件中的ID值在生成HTML后有了变动.解决办法:
                运行该文件,然后查看源文件,找到该TEXTBOX,你就会发现它的ID值己改变,在原来的基础上前面加上了所在.ASPX的文件名,你把这个变量名拷贝,然后替换到程序中就可以了.eg:ublic string getValue()
    {
        return 所在.ASPX文件名_textbox1.Text;
    }
       如果你还不明白的话,你就是个超级大笨蛋啦~~~~
      

  4.   

    namespace Hitachi.TripSystem.Web
    {
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls; using Hitachi.TripSystem.Logic;
    using Hitachi.Common;
    /// <summary>
    ///Logic of  UC_Curr
    /// </summary>
    /// 
    public class UC_Curr : System.Web.UI.UserControl,IUserControl
    {
    protected System.Web.UI.HtmlControls.HtmlInputHidden hid_Flag;
    protected System.Web.UI.WebControls.DropDownList dpl_CurrItem; public event ChangedEventHandler OnSelectedIndexChanged; private void Page_Load(object sender, System.EventArgs e)
    {
    // Reset Page ,insert usercode
    } /// <summary>
    /// bind dropdownlist
    /// </summary>
    public void BindDpl()
    {
    DataSet dsBind = null;

    if(Session["UC_Curr"] == null)
    {
    string strCompycode = ((StructUserInfo)Session["UserInfo"]).CompCode;
    string strLocatcode = ((StructUserInfo)Session["UserInfo"]).LocnCode; ComUserControl ctlDB =  new ComUserControl();
    dsBind = ctlDB.GetCurrCode(strCompycode,strLocatcode);
    this.Session["UC_Curr"] = dsBind;
    }

    dsBind = (DataSet)this.Session["UC_Curr"];
    if(dsBind.Tables[0].Rows.Count == 0)
    {
    throw new ApplicationException(ComLocalDiff.GetMessageById("",((StructUserInfo)Session["UserInfo"]).LangCode));
    }
    else
    {

    dpl_CurrItem.DataSource = dsBind.Tables[0];
    dpl_CurrItem.DataTextField = "CURR_CODE";
    dpl_CurrItem.DataValueField = "CURR_CODE";
    dpl_CurrItem.DataBind();
    if(hid_Flag.Value == "1")
    {
    dpl_CurrItem.Items.Insert(0,"");
    }
    }
    } /// <summary>
    /// get select value
    /// </summary>
    public string GetSelectValue
    {
    get
    {
    return dpl_CurrItem.SelectedItem.Value.ToString();
    }
    } /// <summary>
    /// set enable
    /// </summary>
    public bool Enabled
    {
    get
    {
    return dpl_CurrItem.Enabled;
    }
    set
    {
    dpl_CurrItem.Enabled = value;
    }
    } /// <summary>
    /// set postback
    /// </summary>
    public bool AutoPostBack
    {
    set
    {
    dpl_CurrItem.AutoPostBack = value;
    }
    } /// <summary>
    /// set select index
    /// </summary>
    /// <param name="dplValue"></param>
    public void SetSelectIndex(string dplValue)
    {
    this.dpl_CurrItem.SelectedIndex =
    this.dpl_CurrItem.Items.IndexOf(this.dpl_CurrItem.Items.FindByValue(dplValue));
    } //Insert Null Item
    public void InsertNullItem()
    {
    hid_Flag.Value = "1";
    } //DropDownList Enable
    public bool DdlEnable
    {
    get
    {
    return dpl_CurrItem.Enabled;
    }
    set
    {
    dpl_CurrItem.Enabled = value;
    }
    } /// <summary>
    /// Reset
    /// </summary>
    public void Reset()
    {
    dpl_CurrItem.SelectedIndex = 0;
    } #region Web  Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: The Design must be ASP.NET Web Form
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    ///  It is necessarily to suppot this Design
    ///  Don't change the values of component in  programming
            /// </summary>
            //Initialize Component
    private void InitializeComponent()
    {
    this.dpl_CurrItem.SelectedIndexChanged += new System.EventHandler(this.dpl_CurrItem_SelectedIndexChanged);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void dpl_CurrItem_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    if(OnSelectedIndexChanged != null)
    {
    OnSelectedIndexChanged(sender,e);
    }
    }
    }
    }
      

  5.   

    gabriel1(风林火山) ( ) 信誉:97 
    private WebUserControl1 WebUserControl11;
    重未对字段WebUserControl11赋值,字段将一直保持默认值null。
    另外string a = WebUserControl11.returnText();报错:未将对象引用设置到对象的实例。
    再另外,seaonce(雨花中的小皮鞋) ,还是谢谢你
      

  6.   

    gabriel1(风林火山) ( ) 信誉:97 
    private WebUserControl1 WebUserControl11;
    重未对字段WebUserControl11赋值,字段将一直保持默认值null。
    另外string a = WebUserControl11.returnText();报错:未将对象引用设置到对象的实例。
    再另外,seaonce(雨花中的小皮鞋) ,还是谢谢你====你拖usercontrol进来的时候,不会在code里自动生成此usercontrol类的声明,需要你自己加.明白吗?
    private WebUserControl1 WebUserControl11;webusercontrol11是你在页面上webusercontrol的名字/id,也可能就是wcl,是你自己在拖那个usercontrol时命名的.