在你的a.asax.cs文件中添加一个属性:public string TheText
{
   get{
       return TextBox1.Text;
   }
   set{
       TextBox1.Text = value;
   }
}在你的B.aspx.cs文件中,添加对WebControl的引用:protected 命名空间.a webCtrl;   //命名空间.a为你的控件的命名空间和类的名称,webCtrl为它的ID然后在Button1的按钮事件中:
webCtrl.TheText = TextBox2.Text;

解决方案 »

  1.   

    报错:System.NullReferenceException: 未将对象引用设置到对象的实例另外,这是ascx上面只有一个TextBox1,但是如果我有很多个类似的TextBox,每个添加一个属性,太多了
      

  2.   

    你把代码贴出来,我帮你改如果你不愿意用属性,那么你可以把TextBox的声明由Protected改为Public,那么就可以直接操作了,类似:
    webCtrl.TextBox1.Text = TextBox2.Text;
      

  3.   

    在你的a.asax.cs文件中添加一个属性:
    namespace pagea
    class classA
    {public string TheText
    {
       get{
           return TextBox1.Text;
       }
       set{
           TextBox1.Text = value;
       }
    }
    }
    在 b.aspx
    page_load()
    {
    pagea.classA a=(pagea.classA )content.handle
    textbox2.Text=a.Text;
    }
      

  4.   

    to timmy3310(tim)
    我在a.aspx里面的TextBox的属性由protected改为public 然后按照拟的方式:
    webCtrl.TextBox1.Text = TextBox2.Text;
    报错:System.NullReferenceException: 未将对象引用设置到对象的实例
    请问什么原因?谢了
      

  5.   

    未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 66:  //Response.Write(webctrl.TB_bh.Text);
    行 67:  //this.TB_hdbh0.Text = strHdbh;
    行 68:  webctrl.TB_bh.Text = "ok";
    行 69:  }
    行 70:  else
     源文件: f:\inetpub\wwwroot\jcoffice\qtcl\qtclxx.aspx.cs    行: 68 堆栈跟踪: 
    [NullReferenceException: 未将对象引用设置到对象的实例。]
       JCOffice.Qtclxx.Page_Load(Object sender, EventArgs e) in f:\inetpub\wwwroot\jcoffice\qtcl\qtclxx.aspx.cs:68
       System.Web.UI.Control.OnLoad(EventArgs e) +67
       System.Web.UI.Control.LoadRecursive() +29
       System.Web.UI.Page.ProcessRequestMain() +724是不是什么地方设置不对? 
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET 框架版本:1.0.3705.0; ASP.NET 版本:1.0.3705.0
      

  6.   

    webctrl必须和页面上的Web控件的ID一致,并且声明为protected
      

  7.   

    to  timmy3310(tim) 
    简单的来一个例子如何?把代码贴出来就行。
    分不够,我再给你加,谢了。
      

  8.   

    Web Control Aspx:
    <%@ Control Language="c#" AutoEventWireup="false" Codebehind="WebCtrl.ascx.cs" Inherits="CsdnTest.WebCtrl" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
    <asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox>--------------------------------------------Web Control .cs:
    /// <summary>
    /// WebCtrl 的摘要说明。
    /// </summary>
    public abstract class WebCtrl : System.Web.UI.UserControl
    {
    public System.Web.UI.WebControls.TextBox TextBox1; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// 设计器支持所需的方法 - 不要使用
    /// 代码编辑器修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
      

  9.   

    页面的Aspx:
    <%@ Page language="c#" Codebehind="WebForm.aspx.cs" AutoEventWireup="false" Inherits="CsdnTest.WebForm" %>
    <%@ Register TagPrefix="uc1" TagName="WebCtrl" Src="WebCtrl.ascx" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body>
    <form id="WebForm" method="post" runat="server">
    <asp:TextBox ID="TextBox1" Runat="Server"></asp:TextBox>
    <br>
    <asp:Button ID="btnPostBack" Runat="server" Text="提交"></asp:Button>
    <br>
    <uc1:WebCtrl id="WebCtrl1" runat="server"></uc1:WebCtrl>
    </form>
    </body>
    </HTML>
      

  10.   

    页面的代码:
    /// <summary>
    /// WebForm 的摘要说明。
    /// </summary>
    public class WebForm : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.Button btnPostBack; protected CsdnTest.WebCtrl WebCtrl1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.btnPostBack.Click += new System.EventHandler(this.btnPostBack_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void btnPostBack_Click(object sender, System.EventArgs e)
    {
    WebCtrl1.TextBox1.Text = this.TextBox1.Text;
    }
    }你把Web Control和页面粘贴运行试试,我这里测试可以
      

  11.   

    谢了。两个不同的aspx页面之间这样传递行不行?