前田稔(Maeda Minoru)の超初心者のプログラム入門
![]()
![]()
/*********************************************/
/*★ エクスプローラ ⇒ ListView 前田 稔 ★*/
/*********************************************/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Collections.Generic;
public class MyForm : Form
{
private ListView listView1;
private Point mouseDownPoint = Point.Empty;
private int[] width = { 240, 120, 80 };
private string[] head = { "名前", "更新日付", "サイズ" };
private string path = @"C:\TMP";
public MyForm()
{
InitializeComponent();
InitializeListView();
Load += new System.EventHandler(MyForm_Load);
}
private void InitializeComponent()
{
this.listView1 = new System.Windows.Forms.ListView();
this.SuspendLayout();
// listView1
this.listView1.Location = new System.Drawing.Point(12, 12);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(460, 380);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.AllowDrop = true;
this.listView1.DragEnter += new DragEventHandler(this.ListView1_DragEnter);
this.listView1.DragDrop += new DragEventHandler(this.ListView1_DragDrop);
// MyForm
this.ClientSize = new System.Drawing.Size(480, 400);
this.Controls.Add(this.listView1);
this.Name = "MyForm";
this.ResumeLayout(false);
}
// ListViewコントロールを初期化します。
private void InitializeListView()
{
// ListViewコントロールのプロパティを設定
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.View = View.Details;
// 列ヘッダの作成
ColumnHeader[] columnHead = new ColumnHeader[3];
for (int i=0; i<3; i++)
{ columnHead[i] = new ColumnHeader();
columnHead[i].Width = width[i];
columnHead[i].Text = head[i];
}
listView1.Columns.AddRange(columnHead);
}
// ListViewコントロールのデータを更新します。
private void MyForm_Load(object sender, System.EventArgs e)
{
//DirectoryInfoを作成
DirectoryInfo di = new DirectoryInfo(path);
string[] item = new string[3];
//ファイル一覧の取得
FileInfo [] fis = di.GetFiles("*.*");
for( int i=0;i<fis.Length;i++)
{ item[0]= fis[i].FullName;
item[1]= fis[i].LastWriteTime.ToString();
item[2]= fis[i].Length.ToString();
listView1.Items.Add(new ListViewItem(item));
}
}
// Drop の開始
private void ListView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
// DataObject を string の配列で受け取る
private void ListView1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
foreach(string fileName in (string[])e.Data.GetData(DataFormats.FileDrop))
{ listView1.Items.Add(fileName); }
}
}
}
class form01
{
[STAThread]
public static void Main()
{
MyForm mf = new MyForm();
Application.Run(mf);
}
}
|
| private string path = @"C:\TMP"; |
foreach(string fileName in (string[])e.Data.GetData(DataFormats.FileDrop))
{ listView1.Items.Add(fileName); }
|
![]()
/*********************************************/
/*★ ListView ⇒ エクスプローラ 前田 稔 ★*/
/* コピーのときは Crtl を押しながら */
/*********************************************/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Collections.Generic;
public class MyForm : Form
{
private ListView listView1;
private Point mouseDownPoint = Point.Empty;
private int[] width = { 240, 120, 80 };
private string[] head = { "名前", "更新日付", "サイズ" };
private string path = @"C:\TMP";
public MyForm()
{
InitializeComponent();
Load += new System.EventHandler(MyForm_Load);
}
private void InitializeComponent()
{
this.listView1 = new System.Windows.Forms.ListView();
this.SuspendLayout();
// listView1
this.listView1.Location = new System.Drawing.Point(12, 12);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(460, 380);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.AllowDrop = true;
this.listView1.ItemDrag += new ItemDragEventHandler(ListView1_ItemDrag);
// MyForm
this.ClientSize = new System.Drawing.Size(480, 400);
this.Controls.Add(this.listView1);
this.Name = "MyForm";
this.ResumeLayout(false);
}
// ListViewコントロールを初期化します。
private void MyForm_Load(object sender, System.EventArgs e)
{
// ListViewコントロールのプロパティを設定
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.View = View.Details;
// 列ヘッダの作成
ColumnHeader[] columnHead = new ColumnHeader[3];
for (int i=0; i<3; i++)
{ columnHead[i] = new ColumnHeader();
columnHead[i].Width = width[i];
columnHead[i].Text = head[i];
}
listView1.Columns.AddRange(columnHead);
ListReset();
}
// ListView コントロールのデータを更新
private void ListReset()
{
//DirectoryInfoを作成
DirectoryInfo di = new DirectoryInfo(path);
string[] item = new string[3];
listView1.Items.Clear();
//ファイル一覧の取得
FileInfo [] fis = di.GetFiles("*.*");
for( int i=0;i<fis.Length;i++)
{
item[0]= fis[i].FullName;
item[1]= fis[i].LastWriteTime.ToString();
item[2]= fis[i].Length.ToString();
listView1.Items.Add(new ListViewItem(item));
}
}
// DataObject を渡す
private void ListView1_ItemDrag(object sender, ItemDragEventArgs e)
{
System.Collections.Specialized.StringCollection files =
new System.Collections.Specialized.StringCollection();
for (int i = 0; i < listView1.SelectedItems.Count; i++)
files.Add(listView1.SelectedItems[i].Text);
DataObject dataObj = new DataObject();
dataObj.SetFileDropList(files);
listView1.DoDragDrop(dataObj, DragDropEffects.All);
ListReset();
}
}
class form01
{
[STAThread]
public static void Main()
{
MyForm mf = new MyForm();
Application.Run(mf);
}
}
|
// DataObject を渡す
private void ListView1_ItemDrag(object sender, ItemDragEventArgs e)
{
System.Collections.Specialized.StringCollection files =
new System.Collections.Specialized.StringCollection();
for (int i = 0; i < listView1.SelectedItems.Count; i++)
files.Add(listView1.SelectedItems[i].Text);
DataObject dataObj = new DataObject();
dataObj.SetFileDropList(files);
listView1.DoDragDrop(dataObj, DragDropEffects.All);
ListReset();
}
|
![]()
| files.Add(listView1.SelectedItems[i].Text); |
![]()