![](/img/trans.png)
[英]How do I access controls from the parent page from within an ASP.NET User Control?
[英]How do I access a particular control within a user control?
假設我有一個用戶控件,其中包含一些控件,並且使該用戶控件在表單內部可見。 如何訪問該用戶控件中的特定控件? 例如,以前,如果我在表單中有標簽,則要做的只是label.Text =“ text”; 但是如何更改位於表單內部的用戶控件內部的標簽文本(例如)?
在用戶控件中創建一個公共方法,然后從表單中調用它:
public void SetCaption(string caption)
{
label1.Text = caption;
}
現在以您的形式:
userControl1.SetCaption("text");
要按照注釋中的建議訪問控件本身,可以在usercontrol中創建一個公共屬性,該屬性返回所需的控件:
public Label MyLabel {get { return Label1; }}
然后以您的形式:
userControl1.MyLabel.Text = "text";
我不確定您的情況,因此我提供了一個解決方案:
通常,當您擁有大量相同類型的UIElement時,將使用用戶控件。 例如,我可能會將所有這些添加到堆棧面板中。 如果我在用戶控件類中有一個公共ID,則可以查找該特定ID並修改其文本。
MyUserControl.xaml.cs:
//ATextBox is a named Control
public MyUserControl(int ID)
{
InitializeComponent();
this.ID = ID;
ATextBox.Text = "Something";
}
MainWindow.xaml.cs:
//MyStackPanel is a named Control
foreach (MyUserControl muc in MyStackPanel.Children)
{
//ID is public get, private set
if(muc.ID == 123456)
{
muc.ATextBox.Text = "Something Else";
}
}
我對如何設置權限等持自由態度,但是希望這可以說明您可以使用的一種方式。 另外,如果用戶直接與用戶控件進行交互,則可以在用戶控件類內部設置邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.