私の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 時間も費やしましたが、うまくいきませんでした。
私が間違っている/欠けていることを誰かに教えてもらえますか?