在標籤頁上,有33個文本框,我試圖通過tabindex 13到33來獲取文本框的值。我已經將所有標籤索引設置爲這些數字,但由於某種原因無法使其工作。從一個特定的標籤索引開始,並在最後停止
的代碼我目前有:
int startTabIndex = 13;
int endTabIndex = 33;
foreach (Control ctrl in Controls)
{
if (ctrl is TextBox)
{
if (ctrl.TabIndex == startTabIndex || ctrl.TabIndex <= endTabIndex)
{
MessageBox.Show(ctrl.Text);
}
}
}
的MessageBox.Show(ctrl.Text)
只是一個測試,看看它是否工作。
此外,這可以通過使用LINQ來完成,以及如何?
我改變了我的代碼使用LINQ搶每次由史蒂夫提供的答案文本框的值(名稱和文本)。我該如何去檢查值是否已通過(如在消息框中顯示文本或其他內容)?
int startTabIndex = 13;
int endTabIndex = 33;
System.Collections.Generic.Dictionary<string, string> dictionary = Controls.OfType<TextBox>()
.Where(t => t.TabIndex >= startTabIndex && t.TabIndex <= endTabIndex)
.Select(x => new System.Collections.Generic.KeyValuePair<string, string>(x.Name, x.Text))
.ToDictionary(z => z.Key, z => z.Value);
foreach (var d in dictionary)
{
MessageBox.Show(d.Value);
}
當我點擊插入按鈕時,沒有任何反應。有什麼我失蹤?
史蒂夫給了我一個很好的例子,它的工作原理,但它開始在文本框(tabindex屬性33)結束和向後繼續一路開始(tabindex屬性13)。如何扭轉這種情況?
提示未來的問題:如果您預先指定了目標,則不需要通過來回編輯並追加「更新」部分。那些沒有更新,那些是需求的變化。在開發人員的工作上,需求變更可能會引起回答者的挫折,就像他們在開發人員工作上這樣做一樣。如果您想了解更多信息,請參閱[相關meta post](https://meta.stackexchange.com/q/43478/238706)。 – Palec