我試圖找出如何通過與物件名稱同名的字串來訪問物件。例如,我想使用 for 回圈更改 n 次按鈕的屬性
public static object GetObject(string ObjectName)
{
// this Method has to return an Object through his name
}
for (int i = 1; i < 4; i )
{
GetObject(Convert.ToString("Button" i) ).Text = Convert.ToString(i);
}
}
}
此代碼與此代碼具有相同的功能
Button1.Text = "1";
Button2.Text = "2";
Button3.Text = "3";
uj5u.com熱心網友回復:
您可以使用C#. 即Web,WinForms,WPF。它們有不同型別的Control和Type。我假設您正在開發一個WinForms應用程式。在這種情況下,你可以使用Controls的屬性WinForm來訪問所有Controls的Form。
請檢查以下代碼塊的實作:
public object GetObject(string ObjectName)
{
// this Method has to return an Object through his name
Control myControl = Controls.Find(ObjectName, true).FirstOrDefault();
if (myControl != null)
{
// Do Stuff
return myControl;
}
else return null;
}
private void RenameButtons()
{
for (int i = 1; i < 4; i )
{
//GetObject(Convert.ToString("Button" i)).Text = Convert.ToString(i);
object btn = GetObject(Convert.ToString("Button" i));
if (btn != null) ((Button)btn).Text = Convert.ToString(i);
}
}

通過訪問此鏈接,您將找到有關 Controls 屬性的更多詳細資訊。
uj5u.com熱心網友回復:
你可以試試這個
foreach (Control control in Controls)
{
var btn = control as Button;
if ( btn != null && btn.Name.StartsWith("Button") )
{
var i= btn.Name.Substring(6, 1)
//if( i.Convert.ToInt32() <4 ) //optional
btn.Text = i;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/379702.html
下一篇:如何從未指定的物件中獲取屬性?
