簡體   English   中英

c#動態控制名稱

[英]c# dynamic control name

我正在嘗試使用 XML 文件在運行時創建控件。 在使用 XML 文件指定的名稱創建這些控件后,我將如何訪問它們?

例如,如果我在 XML 文件中有一系列控件:

<control id="0" type="textbox">
   <param id="0" type="(name)">DynamicTextbox</param>
   <param id="1" type="location">100,73</param>
   <param id="2" type="size">119,20</param>
</control>
<control id="1" type="button">
   <param id="0" type="(name)">DynamicButton</param>
   <param id="1" type="location">200,82</param>
   <param id="2" type="size">78,50</param>
</control>

如果我在設計模式下設計 UI,並且我沒有使用 XML 文件,我可以簡單地用它們各自的名稱來調用控件。

DynamicTextbox.location = new Point(100,73);
DynamicTextbox.size = new Size(119,20);

DynamicButton.location = new Point(200,82);
DynamicButton.size = new Size(78,50);

由於我在運行時創建控件,我將如何使用這些名稱訪問它們?

謝謝!

我認為您正在將控件添加到 UI 元素? 您應該能夠通過它訪問它們。 因此,在 WinForms 中,您可能會有類似...

TextBox tb = new TextBox();
tb.Name = "DynamicTextbox";
Panel1.Controls.Add(tb);

TextBox tb = (TextBox)Panel1.Controls["DynamicTextbox"];

如果這沒有幫助,請告訴我們您正在使用哪種類型的應用程序(WinForms、WPF、ASP.NET 等)

想一想您將如何區分一個按鈕與另一個按鈕? 我認為您需要在 XML 中添加一個名稱字段,然后在創建按鈕時將按鈕名稱設置為 XML 中的內容。

另一種選擇是使用反射來查找所有按鈕或所有文本框,但如果您沒有任何方法在 xml 中唯一標識它們,那么您將無法在運行時告訴它們 appart。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM