RSS 2.0 Feed
2005-10 Entries
摘要:如果我们有类似下图的控件排列,四个按钮的Dock全部被设置为 Right。他们的父控件都是同一个控件。  当我们想修改这四个按钮的顺序时候,这时候我们无法通过设计视图来调整,我们需要动开发环境所生成的代码了。虽然开发环境在InitializeComponent函数上明确注释了不要随便修改这部分代码。 修改方法:我们找到InitializeComponent函数中,父控件增加这几个控件的代码。上述范例中,则是如下代码: this.Controls.Add(this.button4); this.Controls.Add(this.button3); this.Controls.Add(this.button2); this.Controls.Add(this.button1); 我们修改这些代码的顺序,则就实现了同样Dock属性的控件,调整控件的顺序。...[阅读全文]

posted @ | Feedback (8) | Filed Under [ .net 编程心得 VS2005相关 ]

摘要:目前我们大多数的异常处理,就是抛出这个异常。或者以一个更友好的方式显示这个异常,然后整个进程中断。但是,对业务逻辑来说,有时候仅仅这么做还是不够的。 我目前的做法是,在扑捉异常里面,出一个选择对话框,让用户可以有更多选择:1、重新再作触发异常的这一步;2、跳过这个异常继续执行;3、中断整个进程的执行; 以一个给多人发邮件的客户端程序为例:有时候,异常是由于当前网络问题、或者邮件服务器顺间不可用造成的。这时候,选择一就很有帮助了。有时候,异常是由于用户的邮件格式不正确造成的,但是我让然想继续执行,选择二就很有帮助了。至于选择三,这是我们大家最常用的,就不用说了。 用伪代码来实现,则是下面代码:for(.....) ...{ Work: try...{ // 需要做的具体事情 CSDN.SendMessage...... }catch (Exception e) ...{ // 出一个窗口让用户选择,并罗列异常信息 if(.....)...{ // 2、跳过这个异常继续执行; continue; }else if (.....)...{ ......[阅读全文]

posted @ | Feedback (7) | Filed Under [ .net 编程心得 ]

摘要:.net 2.0 WinForm 中的 DataGridView 的增加记录事件有两个:1、UserAdderRow 事件,它只是在 DataGridView 的 AllowUserToAddRows 属性设置为 True 后, 用户手工增加一条新的记录时候才触发,程序指定DataGridView 的数据源时候,并不会触发。 2、RowsAdded 事件,这个在有新的记录被增加的时候,就会触发,但是要注意的是:如果一次性增加多条记录,这个事件只触发一次。而不是触发多次。通过这个事件中传递的参数 DataGridViewRowsAddedEventArgs e ,我们可以通过 e.RowCount,获得它当前增加了多少条记录。e.RowIndex 是增加后,当前焦点行在那一行,这个焦点行并不一定是增加后的最后一条。 好在DataGridView 的增加只能是在最后一条记录后的追加,我们可以通过DataGridView  的 .Rows.Count 属性获得增加后总共有多少条。然后减去e.RowCount ,动态获得新增加的这些行。...[阅读全文]

posted @ | Feedback (4) | Filed Under [ .net 编程心得 VS2005相关 ]

摘要:.net 2.0 中,你无法象.net 1.x 那样编程设置连接类的 ConnectionTimeout  属性。这个属性变成了只读属性,你要修改这个设置,只有通过连接字符串来设置。如下:private static void OpenSqlConnection() ...{ string connectionString = GetConnectionString(); using (SqlConnection connection = new SqlConnection(connectionString)) ...{ connection.Open(); Console.WriteLine("State: {0}", connection.State); Console.WriteLine("ConnectionTimeout: {0}", connection.ConnectionTimeout); } } static private string GetConnectionString() ...{ return "Data Source=(local);Initial Catalog=AdventureWorks;" + "Integrated Security=SSPI;Connection Timeout=30"; }...[阅读全文]

posted @ | Feedback (3) | Filed Under [ .net 编程心得 VS2005相关 ]

摘要:在.Net Framework 1.x 我们需要使用 System.Web.Mail 命名空间下的类 来进行发送邮件,但是功能比较弱,比如你的邮件服务器需要验证才能发送邮件,在.net 1.1 中,需要用下面的代码来做额外配置。mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret"); .net 1.x 下发送邮件的方式请参考:http://blog.joycode.com/joy/archive/2004/01/14/11405.aspx .Net Framework 2.0 下,在 System.Net.Mail 命名空间中提供了对邮件操作的支持,他的功能更强大。比如你的邮件服务器需要验证才能发送邮件,代码就只需简单成如下:public static void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody) ...{ System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer); client.UseDefaultCredentials = false; client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass); client.DeliveryMethod = SmtpDeliveryMethod.Network; System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody); message.BodyEncoding = System.Text.Encoding.UTF8; ......[阅读全文]

posted @ | Feedback (7) | Filed Under [ .net 编程心得 VS2005相关 ]