C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 156 を表示中)
■90389 / )  Re[2]: ファイル選択用コントロールはない?
□投稿者/ としぞー (2回)-(2019/03/06(Wed) 11:06:09)
とっちゃんさん、ありがとうございます。
まだ初めて一週間くらいですので何が正解か分からず、
とりあえずエラーが出ないのでOKと判断しているレベルですが、
ExplorerListView.csに以下を追加し、

    public string sFilePath;

    protected override void OnSelectedIndexChanged(EventArgs e)
    {
      if (SelectedItems.Count > 0)
      {
        var si = (ShellItem)SelectedItems[0].Tag;
        if (si.IsFileSystem) {
          sFilePath = si.Path;
          if (si.IsFolder) {
            //フォルダ
          }
          else {
            if (si.IsLink) {
              //ショートカットファイル
            }
            else {
              //普通のファイル
            }
          }
        }
        else {
          //フォルダ・ファイル以外
        }
      }
      base.OnSelectedIndexChanged(e);
    }

フォームのほうに以下を追加すると、無事フルパスを取得できました。

    private void explorerListView1_SelectedIndexChanged(object sender, EventArgs e)
    {
      label1.Text = explorerListView1.sFilePath;
    }

ただ、ExplorerTreeViewの方でフォルダを変更するとそれに追従して
ExplorerListViewもフォルダが変更されるので問題ないのですが、
その逆ではExplorerTreeViewのフォルダが変更されないので
使い勝手がいまいちでした・・・。
この辺りも対応できればいいのですが、今のレベルではさっぱりです^^;


魔界の仮面弁士さん、 PANG2さん、ありがとうございます。
DriveListBox
DirListBox
FileListBox
を使うことができました。これで(見た目寂しいですが・・)なんとかできそうです。

Windows API CodePack はネットがつながった環境でしかインストールできないのですかね?
スタンドアロンPCなのでこれは断念しました・・・。

返信 編集キー/


管理者用

- Child Tree -