用2003学习用户控件:
页面:default.aspx
<%@ Register TagPrefix="uc1" TagName="content" Src="content.ascx" %>
...
<form id="Form1" method="post" runat="server">
<uc1:content id="Content1" runat="server"></uc1:content>
</form>
...
codebehind:default.aspx.vb
...
Dim content1 As New content
...
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        content1.title = "test"
End Sub控件:就一个文本框。content.ascx
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
codebehind控件代码:content.ascx.vb
Public Class content
    Inherits System.Web.UI.UserControl
    Public Property title() As String
        Get
            Return TextBox1.Text
        End Get
        Set(ByVal Value As String)
            TextBox1.Text = Value     ------------>这里报错:未将对象引用设置到对象的实例
        End Set
    End Property
...
end class不给title赋值不报错。如把content1.title = "test"注释掉就没问题,不知什么原因,代码都很简单啊,请大家帮忙看看。

解决方案 »

  1.   

    Value是不是关键字呀,你换个命名
    ByVal Value As String
    --〉
    ByVal sValue As String
    TextBox1.Text = sValue
      

  2.   

    to :The123.
    这个这个这个。,好象
    Public Property title() As String
            Get
                
            End Get
            Set(ByVal Value As String)
                
            End Set
    End Property
    无语
      

  3.   

    是不是你用户控件里这个句语句没有啊
    <%@ Control Language="vb" AutoEventWireup="false" Codebehind="content.ascx.vb" Inherits="" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
      

  4.   

    用户控件不是这样用的
    Dim content1 As New content
      

  5.   

    Dim content1 As New content
    bs是无状态的,在一个函数中new到了另外的函数中,可能会超过他的生存期拉
      

  6.   

    给你一段c#,不知能不能看懂?我vb不行
    page_load(.....)
    {
    content mc = (content)this.FindControl("my1");
    if( mc != null )
    mc.title = "hello";
      

  7.   

    如果要象你这么用,估计是用户控件的定义没有加,需要手动添加定义,如Protected WithEvents WebUserControl11 As WebUserControl1
      

  8.   

    控件定义没加出不了属性啊,我写代码的时候属性都有啊。
    我这个别的都没问题,就是一给title赋值才出错,不给赋值页面很正常的显示一个有文本框的控件。
      

  9.   

    System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            content1(按你的方法,这个content1不是页面上的那个content的实例).title = "test"
    End Sub
      

  10.   

    <uc1:content id="Content1" runat="server"></uc1:content>  content1.title = "test"   你看看是不是你忽略了大小写问题
      

  11.   

    to: hdt
    虽然不太明白,但感觉就是你说的这个问题。但是不实例化怎么对页面那个实例进行代码访问呢?是不是就是你用的那个findcontrol方法?感觉此路正确。
    我是一个大大的菜鸟,纯属学习。
      

  12.   

    content mc = (content)this.FindControl("my1")这句用VB怎么写?