可以這樣做嗎?在標籤名稱中使用變量
var test = 1;
label+test+.Text = "Some text goes here...";
這將導致:
label1.Text = "Some text goes here...";
我不介意使用開關的情況下,如果我有幾個案例,但我有一個40個標籤,我想動態分配的依據文本變量值。
可以這樣做嗎?在標籤名稱中使用變量
var test = 1;
label+test+.Text = "Some text goes here...";
這將導致:
label1.Text = "Some text goes here...";
我不介意使用開關的情況下,如果我有幾個案例,但我有一個40個標籤,我想動態分配的依據文本變量值。
在表單中使用Controls.Find()。
void Button1Click(object sender, EventArgs e)
{
var test = 1;
var labels = Controls.Find("label" + test, true);
if (labels.Length > 0)
{
var label = (Label) labels[0];
label.Text = "Some text goes here...";
}
}
我有一個像40個標籤,我將取決於可變值
這裏的另一實例中,這基本上是相同的方法Handoko就像動態分配的文本 :
for(int i = 1; i <= 40; i++)
{
Label lbl = this.Controls.Find("label" + i.ToString(), true).FirstOrDefault() as Label;
if (lbl != null)
{
lbl.Text = "Hello Label #" + i.ToString();
}
}
var test = 1;
Control label = this.FindControl("label" + test);
if(label != null)
{
label.Text = "Some text goes here...";
}
更多信息FindControl is availa ble at, https://msdn.microsoft.com/en-us/library/system.web.ui.control.findcontrol%28v=VS.100%29.aspx?f=255&MSPPError=-2147217396
有可能,您需要使用像ExpandoObject這樣的動態對象。請參閱 - http://stackoverflow.com/questions/11891381/creating-dynamic-variable-names-in-c-sharp – William
@William Expando對象在這裏做什麼?不是很多...... – DavidG
@William雖然動態對象可能工作,但直接使用字典是更常見的方法來解決這個問題(並且會更容易得到正確的結果)...正如在CSV示例中,您已經將'dynamic '對於單行而言會更好,而不是對於表本身... –