1.KeyEventArgs.Handled 属性
获取或设置将路由事件标记为已处理的值。如果 Handled 的值为 true,则可以防止事件路由路径上的大多数处理程序再次处理同一事件。
2. e.keychar和e.keycode有什么区别?
KeyChar获得是字符,类型是Char,是KeyPressEventArgs类的属性
KeyCode获得是键码,类型是Keys枚举,是KeyEventArgs类的属性
48--〉0
57 --〉9
2者的区别是在处理控制键上面,比如CTRL,SHIFT以及ALT。
当用户同时按下 CTRL + C 的时候,KeyDown事件会相应两次,KeyCode的值分别会是 CTRL键 和 C键。但是随后的KeyPress会相应一次,产生的KeyChar的值是3。
若是用户在按住CTRL + C不放的话,KeyDown和KeyPress会一直交替引发,但是这个时候,KeyDown就只有 C 键了(CTRL键不再引发该事件),KeyPress就是3.
3. C# 中keychar 数值对应 键值(键盘上键值)
8 --〉 Backspace
13 --〉enter
4. RichTextBox 的 SelectionFont 为空的问题
参见:
http://www.seebit.org/2007/01/richtextbox-selectionfont-null/
5. RichTextBox.SelectionFont 属性
获取或设置当前选定文本或插入点的字体。
6. 遍历一个窗体中的某一种控件 c#实现
http://blog.csdn.net/vsweaver/archive/2006/05/26/756065.aspx
7. C#调用外部程序。
using System.Diagnostics;
privater void StaartForm(){ Process MyProcess = new Process(); MyProcess.StartInfo.FileName = "d:/aaa.exe";//The path of the application to be called. MyProcess.StartInfo.Verb = "Open"; MyProcess.StartInfo.CreateNoWindow = true; MyProcess.Start();}
8. c#判断程序是否运行
using System.Diagnostics;string name = "aaa";//程序进程名称 int ProgressCount = 0123456;//判断进程是否运行的标识 Process[] prc = Process.GetProcesses(); foreach(Process pr in prc) //遍历整个进程 { if (name == pr.ProcessName) //如果进程存在 { ProgressCount = 0; //计数器清空 return; } } if(ProgressCount!=0)//如果计数器不为0,说名所指定程序没有运行 { try { //调用外部程序 Process MyProcess = new Process(); MyProcess.StartInfo.FileName = "d:/aaa.exe"; MyProcess.StartInfo.Verb = "Open"; MyProcess.StartInfo.CreateNoWindow = true; MyProcess.Start(); } catch(Exception d) { MessageBox.Show(d.Message+"","提示!!!!"); } } else { MessageBox.Show("对不起,本地已经有系统正在运行!/n.","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning); }
9. C#中 定义类似于VB中的Right,Left,Mid方法
public static string Left(string sSource, int iLength) { return sSource.Substring(0, iLength > sSource.Length ? sSource.Length : iLength); } public static string Right(string sSource, int iLength) { return sSource.Substring(iLength > sSource.Length ? 0 : sSource.Length - iLength); } public static string Mid(string sSource, int iStart, int iLength) { int iStartPoint = iStart > sSource.Length ? sSource.Length : iStart; return sSource.Substring(iStartPoint, iStartPoint + iLength > sSource.Length ? sSource.Length - iStartPoint : iLength); }
10. 最小化主窗体
this.WindowState = FormWindowState.Minimized;
11. c# 后台运行 .bat file。
ProcessStartInfo p = new ProcessStartInfo();p.FileName = "C://1.bat";p.WindowStyle = ProcessWindowStyle.Hidden;p.ErrorDialog = false;p.CreateNoWindow = true;Process.Start(p);
12. c# 启动进程的 3种方法
(1).启动子进程,不等待子进程结束
private void simpleRun_Click(object sender, System.EventArgs e){ System.Diagnostics.Process.Start(@"C:/listfiles.bat");}
(2)启动子进程,等待子进程结束,并获得输出
private void runSyncAndGetResults_Click(object sender, System.EventArgs e) { System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:/listfiles.bat"); psi.RedirectStandardOutput = true; psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; psi.UseShellExecute = false; System.Diagnostics.Process listFiles; listFiles = System.Diagnostics.Process.Start(psi); System.IO.StreamReader myOutput = listFiles.StandardOutput; listFiles.WaitForExit(2000); if (listFiles.HasExited) { string output = myOutput.ReadToEnd(); this.processResults.Text = output; }}
(3)使用默认的浏览器打开URL
private void launchURL_Click(object sender, System.EventArgs e){ string targetURL = @http://www.duncanmackenzie.net; System.Diagnostics.Process.Start(targetURL);}
13. c#操作 Excel 方法。
http://blog.csdn.net/zhaobisha/archive/2009/02/04/3862568.aspx
http://cn.mrvsto.com/?p=320
http://lordong.net/wp/post/215.html
http://www.cnblogs.com/shouzheng/archive/2007/09/26/906941.html
http://hi.baidu.com/gamevip/blog/item/8f37d400257f7e12738b65a9.html
14. C# 绘制统计图相关参考网址
http://www.cnblogs.com/ziyiFly/archive/2008/09/24/1297841.html
15. c# 在 RichTextBox 换行。
用 "/r/n" 就 OK,用"/n"不能再RichTextBox中换行。
16. c# 获取当前路径的方法集合
//获取当前进程的完整路径,包含文件名(进程名)。 string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) //获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。 string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 string str = System.Environment.CurrentDirectory; result: X:\xxx\xxx (.exe文件所在的目录) //获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。 string str = System.AppDomain.CurrentDomain.BaseDirectory; result: X:\xxx\xxx\ (.exe文件所在的目录+"\") //获取和设置包含该应用程序的目录的名称。 string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; result: X:\xxx\xxx\ (.exe文件所在的目录+"\") //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。 string str = System.Windows.Forms.Application.StartupPath; result: X:\xxx\xxx (.exe文件所在的目录) //获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。 string str = System.Windows.Forms.Application.ExecutablePath; result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) //获取应用程序的当前工作目录(不可靠)。 string str = System.IO.Directory.GetCurrentDirectory(); result: X:\xxx\xxx (.exe文件所在的目录)
17. C#操作注册表方法
http://www.cnblogs.com/whitetiger/archive/2008/04/09/1144219.html
http://heisetoufa.iteye.com/blog/400466
举例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Win32; namespace RegWrite { class Program { static void Main(string[] args) { try { RegistryKey key = Registry.CurrentUser; RegistryKey software = key.OpenSubKey("SOFTWARE", true); RegistryKey aspentech = software.OpenSubKey("AspenTech", true); aspentech.SetValue("UserRegistered", "1"); } catch (Exception e) { Console.WriteLine("Write system register exception: " + e.ToString()); } } } }
18 . WPF 中 processbar 应用
http://www.cnblogs.com/bear831204/archive/2010/11/11/1874793.html
19. 日期时间格式化
参考:http://51xingfu.blog.51cto.com/219185/46222