我的 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中。接下来,我将其传递给包含节点列表的字典(自定义类,不要与树视图节点混淆,抱歉):
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 个小时试图弄清楚如何在没有运气的情况下解决这个问题。
谁能告诉我我做错了什么/错过了什么?