阶段总结
2015-06-22 21:23
381 查看
目录
打开文件对话框...3
c#中的using语句块...3
多边形面积...4
最近打开列表...5
操作Datagridview(以MainGridView为要操作的Datagridview)...8
1.添加列...8
2.在DataGridViewTextBoxColumn中添加项...9
3.在DataGridViewComboBoxColumn 中添加项...9
添加CheckedListBox项...9
字符串提取数字...10
读取简单CSV文件...10
计算程序运行时间...11
保存csv/保存文件对话框...11
实现List<T>的排序...12
PDF转图片...13
File 和 Font 是访问非托管资源(本例中为文件句柄和设备上下文)的托管类型的示例。 有许多其他类别的非托管资源和封装这些资源的类库类型。 所有这些类型都必须实现IDisposable 接口。按照规则,当使用 IDisposable 对象时,应在 using 语句中声明和实例化此对象。 using 语句按照正确的方式调用对象上的 Dispose 方法,并(在您按照前面所示方式使用它时)会导致在调用 Dispose 时对象自身离开作用域。 在 using 块中,对象是只读的并且无法修改或重新赋值。
using 语句确保即使在调用对象上的方法时发生异常Dispose方法也会被调用。 可通过将对象放入
try 块中并在finally块中调用Dispose来达到同样的结果;实际上,这就是编译器转换 using 语句的方式。
通常最好是在 using 语句中实例化该对象并将其作用域限制到using块中。
C# Code
2)声明一个继承了接口IComparer<T>的类
C# Code
3)建立一个List,并使用刚建立的PersonComparer类中的规则对List进行排序
C# Code
打开文件对话框...3
c#中的using语句块...3
多边形面积...4
最近打开列表...5
操作Datagridview(以MainGridView为要操作的Datagridview)...8
1.添加列...8
2.在DataGridViewTextBoxColumn中添加项...9
3.在DataGridViewComboBoxColumn 中添加项...9
添加CheckedListBox项...9
字符串提取数字...10
读取简单CSV文件...10
计算程序运行时间...11
保存csv/保存文件对话框...11
实现List<T>的排序...12
PDF转图片...13
打开文件对话框
C# Code1 2 3 4 5 6 7 8 9 10 11 12 | using (OpenFileDialog Dialog = new OpenFileDialog())//使用using可以在用完以后自己销毁 { Dialog .Title = "选择图片";//标题 Dialog .InitialDirectory = "";//获取或设置对话开始时显示的目录 Dialog .Filter = "图片文件|*.bmp;*.jpg;|音频文件|*.mp3;"; //如果 Filter 属性为 Empty,将显示所有文件。始终显示文件夹。多个筛选选项用竖线分隔。 Dialog .FilterIndex = 1;//默认的筛选器,即为“图片文件” if (Dialog .ShowDialog() == DialogResult.OK) { } } |
c#中的using语句块
提供能确保正确使用 IDisposable 对象的方便语法。File 和 Font 是访问非托管资源(本例中为文件句柄和设备上下文)的托管类型的示例。 有许多其他类别的非托管资源和封装这些资源的类库类型。 所有这些类型都必须实现IDisposable 接口。按照规则,当使用 IDisposable 对象时,应在 using 语句中声明和实例化此对象。 using 语句按照正确的方式调用对象上的 Dispose 方法,并(在您按照前面所示方式使用它时)会导致在调用 Dispose 时对象自身离开作用域。 在 using 块中,对象是只读的并且无法修改或重新赋值。
using 语句确保即使在调用对象上的方法时发生异常Dispose方法也会被调用。 可通过将对象放入
try 块中并在finally块中调用Dispose来达到同样的结果;实际上,这就是编译器转换 using 语句的方式。
通常最好是在 using 语句中实例化该对象并将其作用域限制到using块中。
多边形面积
C# Code1 2 3 4 5 6 7 8 9 10 11 | public int PolygonSquare(List<Point> onePolygon)//向量法求多边形面积 { //onePolygon为包含多边形所有点的点集 int area = 0; for(int i = 0; i < onePolygon.Count - 1; i++) { area += (onePolygon[i].X * onePolygon[i + 1].Y - onePolygon[i + 1].X * onePolygon[i].Y); } return Math.Abs(area / 2);//返回的是多边形面积 } |
最近打开列表
C# Code1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #region 局部变量 List<ToolStripDropDownItem> recentFileItem = new List<ToolStripDropDownItem>();//记录所有添加的“最近打开”菜单项,便于统一管理 List<string> recentFileList = new List<string>();//记录所有的最近打开记录 int MaxRecntFile = 3;//定义最大记录数 string INIAddress = "c:\\Menu.ini"; #endregion public void refreshRecentFile(ToolStripMenuItem mainMenu)//没有打开文件时刷新最近列表(在Form_Load事件中调用) { try { StreamReader sr = new StreamReader(INIAddress); while (sr.Peek() >= 0)//读取所有记录 { string path = sr.ReadLine(); checkAndAddRecentFileList(path); } readRecentFile(mainMenu);//调用readRecentFile将记录转换成菜单项 sr.Dispose(); } catch { }; } public void refreshRecentFile(ToolStripMenuItem mainMenu, string filename)//打开文件后刷新最近文件列表,在得到文件地址后调用 { checkAndAddRecentFileList(filename); try { StreamWriter s = new StreamWriter(INIAddress, false);//打开INIAddress foreach (string path in recentFileList)//将recentFileList中的所有记录写入 { s.WriteLine(path); } s.Flush(); s.Close(); readRecentFile(mainMenu); } catch { } } private void readRecentFile(ToolStripMenuItem mainMenu)//读取最近打开的文档列表 { foreach (ToolStripDropDownItem recentItem in recentFileItem)//清除现有的所有“最近打开”项 { mainMenu.DropDownItems.Remove(recentItem); } foreach (string recentPath in recentFileList)//将记录于“recentFileList”中的所有记录转成菜单形式并添加到主菜单下 { ToolStripMenuItem recentFile = new ToolStripMenuItem(); recentFile.Tag = recentPath;//记录真实地址 recentFile.Text = "&" + System.IO.Path.GetFileNameWithoutExtension((string)recentFile.Tag);//提取文件名 recentFile.Click += new EventHandler(openRecentFile);//绑定动作 mainMenu.DropDownItems.Add(recentFile);//将其添加到recentFileItem表中便于统一管理 recentFileItem.Add(recentFile);//添加到菜单项中 } } private void checkAndAddRecentFileList(string path)//只保存3个最近打开文件 { if (recentFileList.Count == MaxRecntFile)//如果已达到最大记录数 { for (int i = 0; i < MaxRecntFile - 1; i++)//删除第一个最近文件,其他的记录前移一位 recentFileList[i] = recentFileList[i + 1]; recentFileList[MaxRecntFile - 1] = path;//将新路径排在最后 } else recentFileList.Add(path);//否则直接记录 } private void openRecentFile(object sender, EventArgs e)//打开最近打开的文档 { ToolStripMenuItem tempButton = (ToolStripMenuItem)sender; string filepath = (string)tempButton.Tag;//根据菜单项的Tag属性中记录的真实地址打开文件 } #endregion |
操作Datagridview(以MainGridView为要操作的Datagridview)
1.添加列
C# Code1 2 3 4 5 | DataGridViewTextBoxColumn DGVTBC = new DataGridViewTextBoxColumn();//项为TextBox的列 DataGridViewComboBoxColumn DGVCBC = new DataGridViewComboBoxColumn();//项为ComboBox的列 DGVTBC.HeaderText = "xxxx";//列名称 DGVTBC .ReadOnly = true;//该列只读 MainGridView.Columns.Add(DGVTBC);//在MainGridView这个DataGridView中添加该列 |
2.在DataGridViewTextBoxColumn中添加项
C# Code1 2 | int index = MainGridView.Rows.Add();//获取新添加的roi序号 MainGridView.Rows[index].Cells[0].Value = “XXXX”;//设置第一列的值 |
3.在DataGridViewComboBoxColumn 中添加项
C# Code1 2 3 4 | //假设第二列为ComboBox列 DataGridViewComboBoxCell cell = MainGridView.Rows[index].Cells[1] as DataGridViewComboBoxCell; cell.DataSource = NameList;//假设NameList为一List<string> cell.Value = NameList[2];//设置值 |
添加CheckedListBox项
C# Code1 2 | CheckedListBox1.Items.Clear();//先清理所有的项 CheckedListBox1.Items.AddRange(ListName.ToArray());//再根据名称列表更新项(假设ListName为一List<string>) |
字符串提取数字
C# Code1 2 3 4 5 6 7 8 9 10 11 | public static int GetNumber(string str)//从字符串提取数字 { int result = 0; if (str != null && str != string.Empty) { str = Regex.Replace(str, @"[^\d.\d]", ""); // 正则表达式剔除非数字字符(不包含小数点.) if (Regex.IsMatch(str, @"^[+-]?\d*[.]?\d*$")) // 如果是数字,则转换为int类型 result = int.Parse(str); } return result; } |
读取简单CSV文件
C# Code1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public void OpenCSV(string filename)//打开csv的函数 { FileStream fs = new FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read); StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default); //记录每次读取的一行记录 string strLine = "";//记录每行记录中的各字段内容 string[] aryLine;//标示列数 while ((strLine = sr.ReadLine()) != null) { Point temp = new Point();//假设该CSV结构为每行只有两个数据x和Y aryLine = strLine.Split(',');//数据按","分割 temp.x = Convert.ToInt32(aryLine[0]);//存储读取的数据 temp.Y = Convert.ToInt32(aryLine[1]); } sr.Close(); fs.Close(); } |
计算程序运行时间
C# Code1 2 3 4 5 6 7 8 9 10 | using System.Diagnostics; public float spanSecond() { Stopwatch stopwatch = new Stopwatch();//记录运行时间 //要运行的函数 stopwatch.Start(); stopwatch.Stop(); // 停止监视 TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间 float seconds = (float)timespan.TotalSeconds; return seconds; } |
保存csv/保存文件对话框
C# Code1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public float SaveCSV(string CSV) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.DefaultExt = "*.csv";//获取或设置默认文件扩展名 saveFileDialog.AddExtension = true;//如果用户省略扩展名,对话框是否自动在文件名中添加扩展名 saveFileDialog.Filter = "csv 文件|*.csv"; saveFileDialog.OverwritePrompt = true;//指示如果用户指定的文件名已存在,Save As 对话框是否显示警告 saveFileDialog.CheckPathExists = true;//指示如果用户指定不存在的路径,对话框是否显示警告 saveFileDialog.ValidateNames = true;//指示对话框是否只接受有效的 Win32 文件名 saveFileDialog.FileName = "XXXX"; if (saveFileDialog.ShowDialog() == DialogResult.OK && saveFileDialog.FileName != null) //打开保存文件对话框 { string fileName = saveFileDialog.FileName;//文件名字 StreamWriter sw = new StreamWriter(fileName, true); sw.WriteLine(CSV); //向创建的文件中写入内容,假设CSV格式正确 sw.Close();//关闭当前文件写入流 textBox1.Text = string.Empty;//清空CSV缓存框 } } |
实现List<T>的排序
1)声明一个类C# Code
1 2 3 4 5 6 | public class Person { public int age; } |
C# Code
1 2 3 4 5 6 7 | class PersonCompare : IComparer<Person> { public int Compare(Person a, Person b) { return a.age - b.age } } |
C# Code
1 2 3 | List<Person> a = new List<Person>(); a.Add(....);//添加元素 a.Sort(new PersonComparer());//进行排序 |
PDF转图片
C# Code1 2 3 4 5 6 7 8 9 10 11 | using O2S.Components.PDFView4NET; using O2S.Components.PDFRender4NET; public Bitmap GetPDFToBitmap(string path, int page) { PDFFile pdfFile = PDFFile.Open(path);//打开PDF pagecount = pdfFile.PageCount;//获取PDF总页数 Bitmap pageImage; if(page > 0 && page < pagecount) pageImage = pdfFile.GetPageImage(page, 200); //200为所获取图像的PPI rerturn pageImage; } |
相关文章推荐
- 练习代码(五)接口与内部类(一)
- Android基础知识_Activity之间传递参数
- 第二次冲刺团队进展报告一
- Java 求字符串中出现频率最高字符
- PPT制造电子相册
- codeforces #306 550B B. Preparing Olympiad(位压缩枚举)
- JVM--总体理解
- 冒泡排序
- oracle 数据类型详解---日期型
- 手机屏幕抖动的形式实现
- C#实现任意大数的计算和简单逻辑命题的证明——前言
- Android中scrollview和viewpage滑动冲突解决
- LTE中的HARQ学习(3)——上行HARQ
- 内核中的内存申请
- 补码,原码,反码详解
- Linux 运维工程师的十个基本技能点
- hadoop2提交到Yarn: Mapreduce执行过程分析
- Debian6 下NFS 安装
- linux 下普通用户无法使用sudo命令的解决方法
- AutoLayout中使用UIScrollView