4

ラベルのテキストの更新に問題があります。これをどうやってやるのかわからない。

ラベル(lable1)とテキストボックス(secondTextBox)があり、ユーザーがアイテムを選択する必要があるツリービューがあります。プロセスは次のようになります。

ユーザーがツリービューで要素を選択すると、label1にデフォルトのテキストが表示され、secondTextBoxが表示されます。ユーザーがsecondTextBox内のデフォルトのテキストを変更すると、label1内のテキストは、ユーザーが何も押さなくても自動的に更新されます(これをアクティブにする必要があるノードが約45あることに注意してください。これを行うための簡単な方法はありますか? 45ノードのコードを編集する必要がありますか?)

これまでのところ、最初の変更を行うことができましたが、ユーザーが何かを入力しても、ラベルは自動的に更新されません。ユーザーは、ツリービューから別のものを選択し、更新するテキストの元の選択に戻る必要があります。

これまでの私のコードは次のとおりです。

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        if (treeView1.SelectedNode.FullPath == @"Node0/Node1")
        {
            label1.Text = String.Format("Whatever default text there is {0}"
     textBox1.Text);
        }
     }
}

}

これは、デフォルトモードのときのスクリーンショットです。

http://i.stack.imgur.com/0NOlP.jpg

これは、テキストを入力したときのスクリーンショットですが、ラベルボックスに変更はありません。

http://i.stack.imgur.com/3uX53.jpg

事前にどうもありがとうございました。

4

2 に答える 2

7

コントロールTextChangedにイベント ハンドラーを追加するだけでよいようです。これをコンストラクタtextbox1に入れてみてください:Form1

textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);

次に、このメソッドを追加します。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    label1.Text = String.Format("Whatever default text there is {0}", textBox1.Text)
}
于 2012-04-13T20:20:44.917 に答える
1

テキストボックスが変更されたときにラベルを更新したい場合は、テキストボックスの TextChanged イベントを配線する必要があります。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    label1.Text = String.Format("Whatever default text there is {0}", textBox1.Text); 
}

フォームをロードするときに、フォーム デザイナーを使用して、または動的にイベントを設定します。

于 2012-04-13T20:15:52.387 に答える