1

我用文本框创建了一个 usercontrol1。在我的表单中,我添加了一个用户控件(带有文本框的 usercontrol1)和一个文本框。我已经知道如何将值从 Form 传递到 Usercontrol。

Form Code
public string ID
    {
        get { return textBox1.Text; }
    }
private void textBox1_TextChanged(object sender, EventArgs e)
    {
        userControl11.ID = ID;
    }

Usercontrol Code
public string BorrowerID
    {
        set { textBox1.Text = value; }
    }

但是不知道如何将值从 Usercontrol 的 textBox 传递到 Form 的 textbox?我发现了如何从用户控件关闭表单。

((Form)this.TopLevelControl).Close();

更改父窗体颜色

this.ParentForm.BackColor= Color.Red;

我将如何实现这样的方法或其他方法将值从用户控件传递到表单?

((Form)this.TopLevelControl).ID = ID;

或者

this.ParentForm.ID= ID;
4

2 回答 2

5

我在一个新项目中创建了 UserControl1 并将其引用到包含表单的项目中,而不是直接在表单的项目中添加 UserControl,这就是事情变得复杂的原因。

现在在这里将值从 UserControl 传递给 Form

用户控制

public string ID2
{
    get { return textBox1.Text; }
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
    var textBoxContent = this.textBox1.Text;
    var parent = this.Parent as Form1;
    parent.ID2 = ID2;  
}

表格1

public string ID2
{
    set { textBox1.Text = value; }
}
于 2013-06-02T16:59:53.313 回答
0

您可以在您喜欢的任何数据类型的用户控件上公开一个属性,并在包含该控件的 Web 表单上设置该属性的值。

用户控制代码隐藏:

 public partial class UserControlTest : System.Web.UI.UserControl
 {
    protected void Page_Load(object sender, EventArgs e)
    { }

    public string FirstName
    {
        get { return txtUcFirstName.Text; }
        set { txtUcFirstName.Text = value; }
    }
 }

==================================================== =============

我的页面.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div> 
                <uc1:UserControlTest ID="UserControlTest1" runat="server" /> 
            </div>
            <asp:TextBox id="txtFirstName" runat="server" /> 
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        </form>
    </body>
</html>

==================================================== ==========

在 webform 代码隐藏中,

public partial class MyPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    { }

    protected void Button1_Click(object sender, EventArgs e)
    {
        UserControlTest1.FirstName = txtFirstName.Text;
    }
}
于 2013-06-01T16:44:04.137 回答