1

ディレクトリを読み取り、コンボボックスにファイル名を表示するコンボボックスがあります。私がやろうとしているのは、コンボボックスで値が選択されたときに、これをラベルに表示したいということです。

私は次のことを試しました

    Label1.Text = Combobox1.SelectedValue

しかし、うまくいかないようです。

コンボボックスに値を表示するための私のコーディング

With Combobox1
     .DisplayMember = "Name" 
     .ValueMember = "FullName"
     .DataSource = New IO.DirectoryInfo("Path").GetFiles().Select( _ 
       Function(fi) New With {.Name = IO.Path.GetFileNameWithoutExtension( _ 
       fi.FullName), fi.FullName}).ToArray()
End With

Combobox1_SelectedIndexChanged イベントのコーディングの最初のスニペットがあります。

「FullName」は、コンボボックスで値を選択するとtextbox1で機能しますが、「名前」をlabel1.textに表示したい

4

4 に答える 4

2

を使用しSelectedItem.ToString()ます。SelectedValueユーザーに表示されないアイテムに割り当てられた値です。そのように見たい場合は、タグのようなものです。アイテムの値を明示的に設定しない場合、値は NULL になるため、ラベルには何も表示されません。

SelectedValueデータバインディングには本当に便利です。たとえば、ユーザーに「John Smith」という名前を表示したいが、その値をバインド先のデータベース行の主キーに設定したいとします。その項目に基づいてデータベースを更新する場合は、SelectedValue既に設定されているため、パラメーター (John Smith の行の PK) として渡すことができます。

于 2012-05-24T13:43:11.077 に答える
0

使用できます:

ComboBox1.SelectedItem.Name

また

ComboBox1.SelectedItem.FullName

あなたがしようとしていることに応じて。

SelectedItemは匿名オブジェクトであるため、別のキー/値を持つ別のコンボボックスでこれを使用すると、プロパティの名前が異なります。

于 2012-05-24T20:25:08.743 に答える
0

このようにフォローしてください。お役に立てれば。

private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
    label1.Text=comboBox1.SelectedItem.ToString(); 

                    OR
    label1.Text=comboBox1.SelectedValue.ToString();

}
于 2012-05-24T13:47:39.487 に答える