c# WinForm 操作练习

把C#程序(含多个Dll)合并成一个Exe的超简单方法

  • 工具-NuGet包管理-管理解决方法NuGet程序包-浏览-搜索 Costura.Fody,安装,重新运行解决方法即可绑定Dll到Exe里面去。

winform支持打开H5资源

  • NuGet 添加 CefSharp.WinForms
  • 调用
public ChromiumWebBrowser browser;
        public void InitBrowser()
        {
            Cef.Initialize(new CefSettings());
            //browser = new ChromiumWebBrowser("file:///C:/Users/Administrator/Desktop/wenbenjuanzhi/HTML5%E6%96%87%E6%9C%AC%E9%98%85%E8%AF%BB%E5%8D%B7%E7%BA%B8%E5%8A%A8%E7%94%BB%E4%BB%A3%E7%A0%81/index.html");
            browser =new ChromiumWebBrowser(Application.StartupPath + @"\wenbenjuanzhi\HTML5文本阅读卷纸动画代码\index.html");
            panel1.Controls.Add(browser);
            browser.Dock = DockStyle.Fill;
        }

按钮点击打开文件夹选择文件夹,textBox1.Text赋值路径

 private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dialog=new FolderBrowserDialog();
            if (dialog.ShowDialog()==DialogResult.OK)
            {
                textBox1.Text = dialog.SelectedPath;
            }
        }

递归获取所有文件夹下子文件夹下所有文件,并初始化FileData

//路径
		DirectoryInfo folder=new DirectoryInfo(textBox1.Text);
            //FileInfo[] files = folder.GetFiles();
            GetFileList(folder);
//递归获取所有文件初始化FileData
        private void GetFileList(DirectoryInfo diroot)
        {
            foreach (FileInfo fileInfo in diroot.GetFiles())
            {
            	//初始化数据
                SetFileInfo(fileInfo);
            }
            foreach (DirectoryInfo dirSub in diroot.GetDirectories())
            {
                GetFileList(dirSub);
            }
        }

获取视频时长(添加Shell32.dll)

//获取时长
        public static string GetMediaTimeLen(string path)
        {
            try
            {
                Shell32.Shell shell = new Shell32.Shell();
                //文件路径               
                Shell32.Folder folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\")));
                //文件名称             
                Shell32.FolderItem folderitem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 1));
                if (Environment.OSVersion.Version.Major >= 6)
                {
                    return folder.GetDetailsOf(folderitem, 27);
                }
                else
                {
                    return folder.GetDetailsOf(folderitem, 21);
                }
            }
            catch (Exception ex) { return null; }
        }

DataGridView添加内容

DataTable table=new DataTable();
            table.Columns.Add("名称");
            table.Columns.Add("格式");
            table.Columns.Add("时长");
            table.Columns.Add("大小");
            table.Columns.Add("最近访问时间");
            table.Columns.Add("创建时间");
            table.Columns.Add("修改时间");
            table.Columns.Add("文件路径");
            foreach (FileData fileData in FileDatas)
            {
                table.Rows.Add(new object[] {fileData.FileName, fileData.FileSuffix, fileData.FileTime, fileData.FileCount, fileData.FileVisitTime, fileData.FileCreatTime, fileData.FileModifyTime,fileData.FilePath });
            }
            dataGridView1.DataSource = table;

把DataGridView导出Excel方法

//------------【函数:将表格控件保存至Excel文件(添加/新建)】------------
        //filePath要保存的目标Excel文件路径名
        //datagGridView要保存至Excel的表格控件
        public static bool SaveToExcelAdd(string filePath, DataGridView dataGridView)
        {
            bool result = true;

            FileStream fs = null;//创建一个新的文件流
            HSSFWorkbook workbook = null;//创建一个新的Excel文件
            ISheet sheet = null;//为Excel创建一张工作表

            //定义行数、列数、与当前Excel已有行数
            int rowCount = dataGridView.RowCount;//记录表格中的行数
            int colCount = dataGridView.ColumnCount;//记录表格中的列数
            int numCount = 0;//Excell最后一行序号

            //为了防止出错这里应该判断文件夹是否存在

            //判断文件是否存在
            if (!File.Exists(filePath))
            {
                try
                {
                    fs = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite);
                    workbook = new HSSFWorkbook();
                    sheet = workbook.CreateSheet("Sheet1");
                    IRow row = sheet.CreateRow(0);
                    for (int j = 0; j < colCount; j++)  //列循环
                    {
                        if (dataGridView.Columns[j].Visible && dataGridView.Rows[0].Cells[j].Value != null)
                        {
                            ICell cell = row.CreateCell(j);//创建列
                            cell.SetCellValue(dataGridView.Columns[j].HeaderText.ToString());//更改单元格值
                        }
                    }
                    workbook.Write(fs);
                }
                catch
                {
                    result = false;
                    return result;
                }
                finally
                {
                    if (fs != null)
                    {
                        fs.Close();
                        fs.Dispose();
                        fs = null;
                    }
                    workbook = null;
                }
            }
            //创建指向文件的工作表
            try
            {
                fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                workbook = new HSSFWorkbook(fs);//.xls
                sheet = workbook.GetSheetAt(0);
                if (sheet == null)
                {
                    result = false;
                    return result;
                }
                numCount = sheet.LastRowNum + 1;
            }
            catch
            {
                result = false;
                return result;
            }

            for (int i = 0; i < rowCount; i++)      //行循环
            {
                //防止行数超过Excel限制
                if (numCount + i >= 65536)
                {
                    result = false;
                    break;
                }
                IRow row = sheet.CreateRow(numCount + i);  //创建行
                for (int j = 0; j < colCount; j++)  //列循环
                {
                    if (dataGridView.Columns[j].Visible && dataGridView.Rows[i].Cells[j].Value != null)
                    {
                        ICell cell = row.CreateCell(j);//创建列
                        cell.SetCellValue(dataGridView.Rows[i].Cells[j].Value.ToString());//更改单元格值
                    }
                }
            }
            try
            {
                fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                workbook.Write(fs);
            }
            catch
            {
                result = false;
                return result;
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                    fs.Dispose();
                    fs = null;
                }
                workbook = null;
            }
            return result;
        }

操作结束后打开跳转指定文件夹

 Process.Start("F:\QQDownLoad\mokexiazai");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值