.NET 开发中的一些小技巧集锦

来源:互联网 发布:身体发肤受之父母 知乎 编辑:程序博客网 时间:2024/04/29 20:59

.NET 开发中的一些小技巧集锦。这篇文章来自是Mukund Pujari的《Some Cool Tips for .NET》,本人给大家翻译总结一下,我英语水平也就那么回事,不合适的地方还是请大家提出来。

  1. 如何创建一个可改变大小没有标题栏的窗体?(How to create a form with resizing borders and no title bar?)

  form1.Text = string. Empty;
  form1.ControlBox = false;


  2. 如何在.NET的Windows窗体上启用XP主题集?(How to use XP Themes with Windows Forms using the .NET?)

  确认你的控件中FlatStyle属性已经修改为System,再修改Main方法。

  static void Main()
  {
  Application.EnableVisualStyles();
  Application.DoEvents();
  Application. Run(new Form1());
  }


  3. 如何为一个窗体设置一个默认按钮?(How to set the default button for a form?)

  form1.AcceptButton = button1;


  4. 如何为一个窗体设置一个取消按钮?(How to set the Cancel button for a form?)

  form1.CancelButton = button1;


  5. 如何阻止一个窗体标题显示在任务栏上?(How to prevent a form from being shown in the taskbar?)

  设置窗体的ShowIntaskbar属性为False

  6. 如何用现有可用字体绑定到ComboBox控件?(How to fill a ComboBox with the available fonts?)

  comboBox1.Items.AddRange (FontFamily.Families);


  7. 如何禁止TextBox控件默认的邮件菜单?(How to disable the default ContextMenu of a TextBox?)

  textBox1.ContextMenu = new ContextMenu ();


  8. 如何获取“我的文档”等一些系统文件夹路径?(How to get the path for "My Documents" and other system folders?)

  Environment.SpecialFolder中包含了一些系统文件夹信息

  MessageBox.Show(Environment.GetFolderPath( Environment.SpecialFolder.Personal ));


  9. 如何获取应用程序当前执行的路径?(How to get the path to my running EXE?)

  string appPath = Application.ExecutablePath;


  10. 如何确定当前运行的系统?(How to determine which operating system is running?)

  OperatingSystem os = Environment.OSVersion;
  MessageBox.Show(os.Version.ToString());
  MessageBox.Show(os.Platform.ToString());


  11. 如何从完整的路径中获取文件名?(How to get a file "s name from the complete path string?)

  用System.IO.Path.GetFileName 和 System.IO.Path.GetFileNameWithoutExtension(无扩展名)的方法

  12. 如何从完整的路径中获取文件扩展名?(How to get a file "s extension from the complete path string?)

  用System.IO.Path.GetExtension方法

  13. 如何使没有选择日期的DateTimePicker控件为空文本?(How to make the DateTimePicker show empty text if no date is selected?)

  dateTimePicker1.CustomFormat = " ";
  dateTimePicker1.Format = DateTimePickerFormat.Custom;


  14. 如何在Report Viewer中隐藏Crystal Report的状态栏?(How to hide the status bar of Crystal Report in Report Viewer?)

  foreach(object obj in this.crystalReportViewer1.Controls)
  {
  if( obj.GetType()== typeof(System.Windows.Forms.StatusBar))
  {
  StatusBar sBar=(StatusBar)obj;
  sBar.Visible=false;
  }
  }

 15. 如何利用Crystal Report程序来生成PDF版本?(How to generate PDF version of Crystal Report programmatically?)

  ReportDocument O_Report=new ReportDocument();
  ExportOptions exportOpts = new ExportOptions();
  PdfRtfWordFormatOptions pdfFormatOpts = new PdfRtfWordFormatOptions ();
  DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
  exportOpts = O_Report.ExportOptions;
  // 设置PDF格式
  exportOpts.ExportFormatType = ExportFormatType.PortableDocFormat;
  exportOpts.FormatOptions = pdfFormatOpts;
  // 设置文件选项和导出
  exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
  diskOpts.DiskFileName = "C://Trial.pdf"; //设置PDF导出路径
  exportOpts.DestinationOptions = diskOpts;
  O_Report.Export ();


  16.通过代码如何输入多行文本?(How to enter multiline text in textbox through code? )

  利用TextBox控件的LINES属性

  string [] strAddress = {"Mukund Pujari","Global Transformation Technologies","Pune, India"};
  textBox1.MultiLine=true;
  textBox1.Lines=strAddress;


  或者

  textBox1.Text="Line 1/r/nLine2/r/nLine3.";


  或者

  用"System.Environment.NewLine"来替代换行符号

  17. 如何在DataGrid中去掉CheckBox不确定状态?(How to remove the indeterminate status of checkbox in datagrid?)

  DataGridTableStyle ts1 = new DataGridTableStyle(); //创建Table样式
  ts1.MappingName = "Items"; //分配要应用样式的Data Table
  DataGridColumnStyle boolCol = new DataGridBoolColumn(); // 创建CheckBox列
  boolCol.MappingName = "ch"; //分配数据列名称
  boolCol.AllowNull=false; // 修改AllowNull属性


  18. 如何在用一个数据源DataTable绑定两个控件,确保变化不反映在两个控件中?( How to bind two controls to the same DataTable without having changes in one control also change the other control?)网页教学网

  我们在一个Form中放置一个ListBox和一个ComboBox控件,当数据源是一个DataTable而且绑定的ValueMember一致的时候我们选择ListBox中的一个Item时,ComboBox控件中的相同的Item也会被自动选中,我们可以采取建立新的上下文绑定对象来拒绝这样的同步操作

  comboBox1.DataSource = dataset.Tables[ "Items" ];
  comboBox1.ValueMember = "CustomerID";
  comboBox1.DisplayMember = "CustomerID";
  listBox1.BindingContext = new BindingContext(); // 设置新的上下文绑定对象
  listBox1.DataSource = dataset.Tables[ "Items" ];
  listBox1.ValueMember = "CustomerID";
  listBox1.DisplayMember = "CustomerID";


  19. 一个简单的创建链接字符串的方法。(An easy way to build connection string.)

  记事本创建一个New.udl的文件,一个Microsoft 数据链接文件

  双击打开,熟悉吧

  按照向导创建完成一个数据库链接,测试成功

  确定后,链接字符串写入这个文件,用记事本打开就看到了

  20. 如何打开客户端E-Mail程序,Windows应用和Web应用?( How to open default E-mail client on your system with all parameters entered in it,like Outlook Express or Eudora, from your .NET windows or Web Application? )

  Web Application:
  A href="mailto:email@address1.com,email@address2.com?cc=email@address3.com&Subject=Hello&body=Happy New Year"
  Windows Application:
  引用System.Diagnostics.Process 命名空间
  Process process = new Process();
  process.StartInfo.FileName = "mailto:email@address1.com,email@address2.com?subject=Hello&cc=email@address3.com
  &bcc=email@address4.com&body=Happy New Year" ;
  process.Start();


  21. VB.NET和C#有什么不同?( What is difference beween VB.NET and C#.NET? )

  去微软下载一个文档吧,http://download.microsoft.com/download/6/3/5/6354bf47-c597-4029-89e9-2495e7539ab9/vbcsharpwp.exe

  22. 如何使Windows Form上的Panel或者Label控件半透明?(How to make a Panel or Label semi-transparent on a Windows Form? )

  通过设置控件背景色的alpha值网页教学网

  panel1.BackColor = Color.FromArgb(65, 204, 212, 230);


  注意:在设计时手动输入这些值,不要用颜色选取

  23. C#程序的主函数写[STA Thread] 属性是什么目的?(What is the purpose of the [STA Thread] attribute for the Main method of a C# program? )

  http://community.csdn.net/Expert/topic/4132/4132313.xml?temp=.2285272

  24. 如何触发Button的Click事件?(How to trigger a button click event? )

  button1.PerformClick();

原创粉丝点击