我的winform能夠存儲輸入到文本框中的值,然後當在樹視圖上選擇適當的節點時,這些值將返回到它們輸入的文本框。但是,我在嘗試修改程序時遇到問題,以便用戶可以重寫他們存儲的值。更改文本框中的存儲值
這是怎麼了,此刻設置:
private void tagTextBox_TextChanged(object sender, EventArgs e)
{
_screenTag = tagTextBox.Text;
if (_selectedNode > -1)
{
Node n = _nodeList[_nodeList.Count - 1];
n.Tag = _screenTag;
}
}
上述方法首先將值進入我的tagTextbox。接下來,我通過這個到包含節點列表的字典(與TreeView節點相混淆的自定義類,而不是,不好意思):
foreach (KeyValuePair<string, Entry> pair in n.nodeDictionary)
{
if (pair.Key == "Tag ")
{
tagTextBox.Text = (string)pair.Value.value;
}
}
上述方法被調用時,任何一個節點(不是我的等級節點,一個樹節點(抱歉,如果這是令人困惑的))在我的樹視圖被選中。這將帶回存儲的值並將其重新輸入到正確的文本框中。現在
,這是我在試圖對與我的屏幕相關聯的標記文本框改變和更新值電流的嘗試:
private void tagTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
// Update the name when enter is pressed
if (e.KeyCode == Keys.Enter)
{
if (_selectedNode > -1)
{
HV_Screen s = _screenList[_screenList.Count - 1];
s.Tag = _screenTag;
}
}
}
但它不工作。我檢查過了,這個方法正在調用,但沒有更新。我知道這通常是一件簡單的事情,但我在這裏非常困惑,我花了8個小時的時間試圖找出如何解決這個問題,但沒有運氣。
任何人都可以告訴我我做錯了什麼/失蹤?
如果你的'textbox'值沒有得到更新,那麼我認爲你應該嘗試'textbox.Update()'或強制GUI更改。 –
試過了,它不起作用。謝謝你。 – N0xus
A)使用調試器斷點檢查事件觸發的順序。 B)檢查調試器中似乎沒有更新的值以及顯示的值。 –