共有フォルダの一覧を取得・表示して、選択した共有フォルダの詳細を表示する画面をサンプルアプリに追加しました。
まずは Windows アプリ。左が開発画面で右が実行画面です。(どちらもクリックすると新しいウィンドウで拡大図が表示されます。)
BindingSource の DataSource はプロジェクトデータソースとして Volume クラスを指定してます。
※Volume クラスの詳細はこちら(VB版 C#版)
デザイナでは次の設定をしてます。
・一覧 ListBox の DataSource に FolderBindingSource を指定
・詳細の「説明」と「UNC 名」の TextBox の DataBindings のプロパティ(Text)に 上記データソースの対応するプロパティを指定
コードでは次の処理をしてます。
1. 共有フォルダの一覧を取得して FolderBindingSource の DataSource に設定
2. 取得した共有フォルダの数を表示
3. 一覧 ListBox の選択変更時(SelectedIndexChanged イベント)に、選択された共有フォルダの Keywords プロパティを キーワード TextBox の Lines プロパティに設定
VB
Public Sub New()
InitializeComponent()
Me.FolderBindingSource.DataSource = DirectoryAccess.GetVolumes() '共有フォルダを取得
Me.CountLabel.Text = String.Format("{0} 個のオブジェクト", Me.FolderBindingSource.Count)
End Sub
Private Sub FolderListBox_SelectedIndexChanged(
sender As Object, e As EventArgs) Handles FolderListBox.SelectedIndexChanged
If Me.FolderListBox.SelectedIndex >= 0 Then
Dim folder = DirectCast(Me.FolderBindingSource.Current, Volume) '選択された共有フォルダ
Me.KeywordTextBox.Lines = folder.Keywords
End If
End Sub
C#
public VolumeList()
{
InitializeComponent();
this.FolderBindingSource.DataSource = DirectoryAccess.GetVolumes(); //共有フォルダを取得
this.CountLabel.Text = String.Format("{0} 個のオブジェクト", this.FolderBindingSource.Count);
}
private void FolderListBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.FolderListBox.SelectedIndex >= 0)
{
var folder = (Volume)this.FolderBindingSource.Current; //選択された共有フォルダ
this.KeywordTextBox.Lines = folder.Keywords;
}
}
1 と 2 はコンストラクタ内で処理してますが、ユーザやグループのリスト画面がコンストラクタ内で処理してたので それに合わせただけです。
一般的には Load イベントで処理するのかなと思います。