在C#Winforms中,當用戶第一次加載表單時,我通過單擊該標籤將輸入作爲標籤「文本」輸入到數據庫中。再次如果另一個用戶加載該表單,我希望禁用該標籤。我怎麼能做到這一點?這是形式的樣品找到包含「所需文本」的標籤
這是我嘗試:
- 如果用戶點擊了多個標籤,我得到的輸入字符串爲「E10,E9,E8,E7等,「
當另一個用戶加載的形式,我檢索字符串,並通過分割 說」,」並保存它陣列
的,但我不知道如何使拉bel從數組中禁用。請幫助。
在C#Winforms中,當用戶第一次加載表單時,我通過單擊該標籤將輸入作爲標籤「文本」輸入到數據庫中。再次如果另一個用戶加載該表單,我希望禁用該標籤。我怎麼能做到這一點?這是形式的樣品找到包含「所需文本」的標籤
這是我嘗試:
當另一個用戶加載的形式,我檢索字符串,並通過分割 說」,」並保存它陣列
的,但我不知道如何使拉bel從數組中禁用。請幫助。
* 強大的文本 * 1 .-做一個循環您的陣列
2:查找使用的標籤名稱標籤(我supossed該標籤的名稱是相同的您在陣列中有開關輸入字符串)
3.-禁用控制
foreach (string name in yourArray)
{
var matches = this.Controls.Find(name , true);
((Label) matches).Enable = False
}
我沒有編譯器現在在這裏,我希望它運行。請理解,如果沒有。
編輯:查找他的文本屬性標籤:
foreach(Control c in this.Controls)
{
if(c is Label)
{
if((Label) c).Text == "RequiredText")
{
// Do stuff here ;
}
}
}
請注意,如果標籤是面板,組框,或任何內容控制裏面,你會不得不UDO contentControl.Controls代替使用'this'。
編輯2:好的,這段代碼適用於我。我有一個帶有「Sample」文本的標籤。
var myarray = "E1,E2,Sample".Split(',');
foreach (Control labelcontrol in this.Controls)
{
if (!(labelcontrol is Label)) continue;
foreach (var text in myarray)
{
if (labelcontrol.Text == text)
labelcontrol.Enabled = false;
}
}
它顯示錯誤,無法將類型'system.windows.form.control []'轉換爲'系統.windows.form.label」。它的意思是????我該怎麼辦?該標籤的名稱與輸入字符串不同:( –
可能需要一個索引,因爲它返回一個數組,將其更改爲((Label)matches [0]) – tam
感謝您的幫助,但現在例外情況是'Index as在數組邊界之外'。我將strarray聲明爲「string [] strarray = retr_seats_upper.Split(comma);」 –
您嘗試的方法聽起來很合理。爲什麼它不起作用? –
你能告訴我如何找到包含「所需文本」的標籤嗎? –
好的,我已經用我目前在VS2010中工作的代碼編輯了我的答案。請確認它在歐洲足球決賽(西班牙VS意大利)開始前有效;)我不會在這裏:D – Jonathan