2010-12-01 3 views
0

リストビューと「追加」ボタンがあります。追加をクリックすると、ファイルを選択してファイルを選択し、「OK」または「開く」をクリックするとファイルリストが表示されます。リストビューに追加してください...それを行う方法...リストビューは正しいですか他の代替手段ですか?C言語でリストビューにファイルを追加する

+1

次のコードを与えるこの

ような何かを行うことができますかWindowsフォーム? ASP.NET? WPF? – JeffFerguson

答えて

3

リストビューはファイルリストには問題ありません。リストにフルパスを追加するだけであれば、長いファイルパスは見づらくなります(水平にスクロールする必要があります!)。限り懸念しているコードを使用してそれをやっなど

File.Txt (C:\Users\Me\Documents) 
C:\Users\..\File.Txt 
etc 

、ユーザーがファイルを選択できるようにOpenFileDialogコントロールを使用する必要があります:あなたのような他の表現のアイデアを持つおもちゃはできます。

var ofd = new OpenFileDialog(); 
//add extension filter etc 
ofd.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ; 
if(ofd.ShowDialog() == DialogResult.OK) 
{ 
    foreach (var f in openFileDialog1.FileNames) 
    { 
     //Transform the list to a better presentation if needed 
     //Below code just adds the full path to list 
     listView1.Items.Add (f); 

     //Or use below code to just add file names 
     //listView1.Items.Add (Path.GetFileName (f)); 
    } 
} 
+1

詳細については、パスを短縮するためのさまざまな戦略については、Jeffの[ブログ記事](http://www.codinghorror.com/blog/2006/08/shortening-long-file-paths.html)を参照してください。主題本質は、正規表現か[PathCompactPathEx' API](http://msdn.microsoft.com/en-us/library/bb773578.aspx)のどちらかを使ってこれを自動的に行うことです。 –

+0

@hemanth:thanx ...選択したファイル名のみを表示するにはどうすればよいですか? –

+0

あなたはユーザーが選択したファイルのみを意味しますか?心配しないでください! OpenFileDialogコントロールのFileNamesプロパティは、ユーザーが選択したファイルパスの配列を返します。ユーザーが1つのファイルのみを選択した場合、この配列には1つの要素しか含まれません。 – Hemant

2

あなたはデザイナでこれを実行したい場合は、ListViewコントロールにイメージを追加するには、次の手順を取ることができますデザイナーへ

  1. スイッチ、上のImageListコンポーネントをクリックしてくださいコンポーネントトレイには、ImageListの右上隅にスマートタグが表示されます。
  2. スマートタグをクリックし、ペインの[画像の選択]をクリックします。
  3. ポップアップ画像コレクションエディタダイアログで、目的のフォルダから画像を選択します。
  4. [OK]をクリックして、ImageListに画像を追加します。
  5. フォームのListViewをクリックすると、右上隅にスマートタグが表示されます。
  6. スマートタグをクリックすると、そこに3つのコンボボックスがあり、必要に応じてリストからImageListを選択します。
  7. スマートタグの[項目を追加]オプションをクリックすると、ListViewItemコレクションエディタが表示され、ListViewに項目を追加できます。ここで重要なのは、ImageIndexまたはImageKeyプロパティを設定することです。
  8. [OK]をクリックしてアイテムの編集を終了すると、イメージがListViewに表示されます。

あなたは、コードによって、リストビューに画像を追加したい場合は、このアプリケーションのどのような?addButton_click

 var fdlg = new OpenFileDialog(); 
     fdlg.Multiselect = true; 
     fdlg.Title = "Select a file to add... "; 
     fdlg.InitialDirectory = "C:\\"; 
     fdlg.Filter = "All files|*.*"; 
     fdlg.RestoreDirectory = true; 
     if (fdlg.ShowDialog() == DialogResult.OK) 
     { 
      foreach (var files in fdlg.FileNames) 
      { 
       try 
       { 
        this.imageList1.Images.Add(Image.FromFile(files)); 
       } 

       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 
       } 
      } 
      this.listView1.View = View.LargeIcon; 
      this.imageList1.ImageSize = new Size(32, 32); 
      this.listView1.LargeImageList = this.imageList1; 
      //or 
      //this.listView1.View = View.SmallIcon; 
      //this.listView1.SmallImageList = this.imageList1; 
      for (int j = 0; j < this.imageList1.Images.Count; j++) 
      { 
       ListViewItem item = new ListViewItem(); 
       item.ImageIndex = j; 
       this.listView1.Items.Add(item); 
      } 
     } 
+0

@pavan:ありがとうございました...実際にはファイル名を追加したいのですが...画像ではありません...とにかく助けになりました... thx –

関連する問題