マイナーでもいいよね??

殆どVB系、でも .NET じゃない VB は知らないよん

目次

Blog 利用状況

書庫

日記カテゴリ

共有フォルダリスト画面(Windowsアプリ)

共有フォルダの一覧を取得・表示して、選択した共有フォルダの詳細を表示する画面をサンプルアプリに追加しました。

まずは Windows アプリ。左が開発画面で右が実行画面です。(どちらもクリックすると新しいウィンドウで拡大図が表示されます。)

FolderListDevWin FolderListWin

 

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 イベントで処理するのかなと思います。

投稿日時 : 2014年1月29日 23:24

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント