ListView控件,为什么我执行代码后,form1的窗体是白的?
C#入门经典(第4版).我将书上所有的步骤全部做好了,代码也调试好了.为什么执行后窗体还是一片空白?我的5个radioButton、1个Button、1个ListView、1个label控件在窗体上一无所有,而书上显示了具体的控件,请高手指点一下,具体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace ListView
{
partial class Form1 : Form
{
//Member field to hold previous folders
private System.Collections.Specialized.StringCollection folderCol;
private void CreateHeadersAndFillListView()
{
ColumnHeader colHead;
//First header
colHead = new ColumnHeader();
colHead.Text = "Filename";
this.listViewFilesAndFolder.Columns.Add(colHead); //Second header
colHead = new ColumnHeader();
colHead.Text = "Size";
this.listViewFilesAndFolder.Columns.Add(colHead); //Third header
colHead = new ColumnHeader();
colHead.Text = "Last accessed";
this.listViewFilesAndFolder.Columns.Add(colHead);
}
private void radioButtonLargeIcon_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.LargeIcon; } private void radioButtonSmallIcon_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.SmallIcon; } private void radioButtonList_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.List; } private void radioButtonDetails_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.Details; } private void radioButtonTile_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.Tile; } private void Form1_Load(object sender, EventArgs e)
{
InitializeComponent();
folderCol = new System.Collections.Specialized.StringCollection();
CreateHeadersAndFillListView();
PaintListView(@"C:\");
folderCol.Add(@"C:\");
} private void listViewFilesAndFolder_ItemActivate(object sender, EventArgs e)
{
System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
string filename = lw.SelectedItems[0].Tag.ToString(); if (lw.SelectedItems[0].ImageIndex != 0)
{
try
{
System.Diagnostics.Process.Start(filename);
}
catch
{
return;
}
}
else
{
PaintListView(filename);
folderCol.Add(filename);
} }
private void labelCurrentPath1_Click(object sender, EventArgs e)
{ }
private void buttonBack_Click(object sender, EventArgs e)
{
if (folderCol.Count > 1)
{
PaintListView(folderCol[folderCol.Count - 2].ToString());
folderCol.RemoveAt(folderCol.Count - 1);
}
else
{
PaintListView(folderCol[0].ToString());
}
}
private void PaintListView(string root)
{
try
{
//Two local variables that is used to create the items to insert
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi; //If there's no root folder,we can't insert anything
if(root.CompareTo("")==0)
return; DirectoryInfo dir=new DirectoryInfo(root);
DirectoryInfo[] dirs=dir.GetDirectories();
FileInfo[] files=dir.GetFiles(); this.listViewFilesAndFolder.Items.Clear(); this.labelCurrentPath1.Text=root; this.listViewFilesAndFolder.BeginUpdate(); foreach(System.IO.DirectoryInfo di in dirs)
{
lvi=new ListViewItem();
lvi.Text=di.Name;
lvi.ImageIndex=0;
lvi.Tag=di.FullName; lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text="";
lvi.SubItems.Add(lvsi); lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text=di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listViewFilesAndFolder.Items.Add(lvi);
} foreach(FileInfo fi in files)
{
lvi=new ListViewItem();
lvi.Text=fi.Name;
lvi.ImageIndex=1;
lvi.Tag=fi.FullName; lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text=fi.Length.ToString();
lvi.SubItems.Add(lvsi); lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text=fi.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listViewFilesAndFolder.Items.Add(lvi);
}
this.listViewFilesAndFolder.EndUpdate();
}
catch(System.Exception err)
{
MessageBox.Show("Error:" +err.Message);
}
} private void listViewFilesAndFolder_SelectedIndexChanged(object sender, EventArgs e)
{ } //Init ListView and folder collection
}
}
C#入门经典(第4版).我将书上所有的步骤全部做好了,代码也调试好了.为什么执行后窗体还是一片空白?我的5个radioButton、1个Button、1个ListView、1个label控件在窗体上一无所有,而书上显示了具体的控件,请高手指点一下,具体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace ListView
{
partial class Form1 : Form
{
//Member field to hold previous folders
private System.Collections.Specialized.StringCollection folderCol;
private void CreateHeadersAndFillListView()
{
ColumnHeader colHead;
//First header
colHead = new ColumnHeader();
colHead.Text = "Filename";
this.listViewFilesAndFolder.Columns.Add(colHead); //Second header
colHead = new ColumnHeader();
colHead.Text = "Size";
this.listViewFilesAndFolder.Columns.Add(colHead); //Third header
colHead = new ColumnHeader();
colHead.Text = "Last accessed";
this.listViewFilesAndFolder.Columns.Add(colHead);
}
private void radioButtonLargeIcon_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.LargeIcon; } private void radioButtonSmallIcon_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.SmallIcon; } private void radioButtonList_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.List; } private void radioButtonDetails_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.Details; } private void radioButtonTile_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolder.View = View.Tile; } private void Form1_Load(object sender, EventArgs e)
{
InitializeComponent();
folderCol = new System.Collections.Specialized.StringCollection();
CreateHeadersAndFillListView();
PaintListView(@"C:\");
folderCol.Add(@"C:\");
} private void listViewFilesAndFolder_ItemActivate(object sender, EventArgs e)
{
System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
string filename = lw.SelectedItems[0].Tag.ToString(); if (lw.SelectedItems[0].ImageIndex != 0)
{
try
{
System.Diagnostics.Process.Start(filename);
}
catch
{
return;
}
}
else
{
PaintListView(filename);
folderCol.Add(filename);
} }
private void labelCurrentPath1_Click(object sender, EventArgs e)
{ }
private void buttonBack_Click(object sender, EventArgs e)
{
if (folderCol.Count > 1)
{
PaintListView(folderCol[folderCol.Count - 2].ToString());
folderCol.RemoveAt(folderCol.Count - 1);
}
else
{
PaintListView(folderCol[0].ToString());
}
}
private void PaintListView(string root)
{
try
{
//Two local variables that is used to create the items to insert
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi; //If there's no root folder,we can't insert anything
if(root.CompareTo("")==0)
return; DirectoryInfo dir=new DirectoryInfo(root);
DirectoryInfo[] dirs=dir.GetDirectories();
FileInfo[] files=dir.GetFiles(); this.listViewFilesAndFolder.Items.Clear(); this.labelCurrentPath1.Text=root; this.listViewFilesAndFolder.BeginUpdate(); foreach(System.IO.DirectoryInfo di in dirs)
{
lvi=new ListViewItem();
lvi.Text=di.Name;
lvi.ImageIndex=0;
lvi.Tag=di.FullName; lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text="";
lvi.SubItems.Add(lvsi); lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text=di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listViewFilesAndFolder.Items.Add(lvi);
} foreach(FileInfo fi in files)
{
lvi=new ListViewItem();
lvi.Text=fi.Name;
lvi.ImageIndex=1;
lvi.Tag=fi.FullName; lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text=fi.Length.ToString();
lvi.SubItems.Add(lvsi); lvsi=new ListViewItem.ListViewSubItem();
lvsi.Text=fi.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listViewFilesAndFolder.Items.Add(lvi);
}
this.listViewFilesAndFolder.EndUpdate();
}
catch(System.Exception err)
{
MessageBox.Show("Error:" +err.Message);
}
} private void listViewFilesAndFolder_SelectedIndexChanged(object sender, EventArgs e)
{ } //Init ListView and folder collection
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace WindowsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
folderCol = new System.Collections.Specialized.StringCollection();
CreateHeadersAndFillListView();
PaintListView(@"C:\");
// folderCol.Add(@"C:\");
}
private void CreateHeadersAndFillListView()
{
ColumnHeader colHead;
//First header
colHead = new ColumnHeader();
colHead.Text = "Filename";
this.listViewFilesAndFolder.Columns.Add(colHead); //Second header
colHead = new ColumnHeader();
colHead.Text = "Size";
this.listViewFilesAndFolder.Columns.Add(colHead); //Third header
colHead = new ColumnHeader();
colHead.Text = "Last accessed";
this.listViewFilesAndFolder.Columns.Add(colHead); }
private System.Collections.Specialized.StringCollection folderCol;
private void PaintListView(string root)
{
try
{
//Two local variables that is used to create the items to insert
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi; //If there's no root folder,we can't insert anything
if (root.CompareTo("") == 0)
return; DirectoryInfo dir = new DirectoryInfo(root);
DirectoryInfo[] dirs = dir.GetDirectories();
FileInfo[] files = dir.GetFiles(); this.listViewFilesAndFolder.Items.Clear(); //this.labelCurrentPath1.Text = root; // this.listViewFilesAndFolder.BeginUpdate(); foreach (System.IO.DirectoryInfo di in dirs)
{
lvi = new ListViewItem();
lvi.Text = di.Name;
lvi.ImageIndex = 0;
lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = "";
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listViewFilesAndFolder.Items.Add(lvi);
} foreach (FileInfo fi in files)
{
lvi = new ListViewItem();
lvi.Text = fi.Name;
lvi.ImageIndex = 1;
lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.Length.ToString();
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listViewFilesAndFolder.Items.Add(lvi);
}
// this.listViewFilesAndFolder.EndUpdate();
}
catch (System.Exception err)
{
MessageBox.Show("Error:" + err.Message);
}
}
}
}
{
InitializeComponent();
folderCol = new System.Collections.Specialized.StringCollection();
CreateHeadersAndFillListView();
PaintListView(@"C:\");
folderCol.Add(@"C:\");
} 红色标记的去掉,就ok了。