winform
运行程序后Listview有数据,但是切换到详细信息视图就空白了,其他视图全都正常,不知道是什么原因?
数据全都没问题的
链接:https://pan.baidu.com/s/1fR4isB2wspIO7ybBTxSwjw
提取码:lno6
项目我放在了百度, 各位大佬帮我看一下
namespace BookMarksMessages
{
public partial class Root : Form
{
public Root()
{
InitializeComponent();
TreeNode treeNode1 = new TreeNode("根目录");
treeNode1.Text = "根目录";
Directory.Nodes.AddRange(new TreeNode[] {
treeNode1});
//BookMarksList.GridLines = true;//显示行与行之间的分隔线
//BookMarksList.FullRowSelect = true;//要选择就是一行
}
private void Under_Development_Click(object sender, EventArgs e)
{
MessageBox.Show("此功能正在开发中...\n敬请期待","开发中...",0);
}
private void List_Switch(object sender, EventArgs e)
{
string view = (sender as ToolStripMenuItem).Name.ToString();
this.BookMarksList.View = (View)Enum.Parse(typeof(View), view);
}
private void ExportToHTML_Click(object sender, EventArgs e)
{
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "所有文件(*.*)|*.*|HTML文件(*.html)|*.html";
//保存时为之前的目录
saveFile.RestoreDirectory = true;
//保存文件对话框的默认保存类型,默认索引从1开始
saveFile.FilterIndex = 2;
if (saveFile.ShowDialog() == DialogResult.OK) {
try
{
FileStream file = new FileStream(saveFile.FileName,FileMode.Create,FileAccess.Write,FileShare.Write);
string str = "测试文本";
//字符串转byte[]
byte[] bytes = new UTF8Encoding(true).GetBytes(str);
//写入字符串
file.Write(bytes, 0, bytes.Length);
file.Close();
MessageBox.Show("保存成功!");
}
catch (Exception ex) {
MessageBox.Show("文件保存错误:\n" + ex);
}
}
}
private void ImportFromHTML_Click(object sender, EventArgs e)
{
OpenFileDialog openFile = new OpenFileDialog();
//设定只能打开HTML文件,文件类型不用加()不然会出错
openFile.Filter = "HTML文件(*.html)|*.html";
//打开时为之前的目录
openFile.RestoreDirectory = true;
if (openFile.ShowDialog() == DialogResult.OK) {
try
{
//打开文件,参数列表: 文件名,打开模式,打开权限,其他可以访问此文件的权限
FileStream file = File.Open(openFile.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
//创建读取文件流实例,参数为: 已打开的文件流,编码方式,一般为默认(操作系统当前的编码)
StreamReader sr = new StreamReader(file, Encoding.Default);
//读取文件并保存到str字符串
string str = sr.ReadToEnd();
HtmlWeb htmlWeb = new HtmlWeb();
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
//document.Text获取内容
document.LoadHtml(str);
//分别用xpath和正则获取内容
//练习
#region 正则
//Regex reg = new Regex("HREF=\"([^\"]+)\"");
//MatchCollection result = reg.Matches(document.Text);
//string href = "";
//foreach (Match m in result)
//{
// reg = new Regex("\".+\"");
// Match a = reg.Match(m.ToString());
// href = href + a.ToString() + Environment.NewLine;
//}
//reg = new Regex("[^\"]+");
//result = reg.Matches(href);
//string href1 = "";
//foreach (Match m in result) {
// href1 = href1 + m.ToString() + Environment.NewLine;
//}
#endregion
#region xpath
HtmlNodeCollection htmlNodes = document.DocumentNode.SelectNodes("//a[@href]");
if (htmlNodes != null) {
BookMarksList.Clear();
foreach (HtmlNode n in htmlNodes) {
HtmlAttribute hrefAtt = n.Attributes["href"];
ListViewItem item = new ListViewItem(new string[] {
n.InnerText.Trim(),
hrefAtt.Value
});
BookMarksList.Items.Add(item);
}
}
#endregion
//关闭读取文件流
sr.Close();
//关闭打开文件流
file.Close();
}
catch (Exception ex){//错误处理
MessageBox.Show("文件打开错误:\n"+ex.ToString());
}
}
}
}
}