摘要: 把treeview的DrawMode属性设置成OwnerDrawText,然后在DrawNode事件里自己画: private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) { if ((e.State & TreeNodeStates.Selected) == TreeNodeStates.Selected) { e.Graphics.FillRectangle(new SolidBrush(Color.Red... 阅读全文
posted @ 2013-07-03 16:32 单单的风 阅读(193) 评论(0) 推荐(0) 编辑
摘要: private void WorkflowConfigure_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = MessageBox.Show("此操作会丢弃您的当前设置,确定要继续?", "退出", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (DialogResult.Yes == result) { ... 阅读全文
posted @ 2013-07-01 10:47 单单的风 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 记录一下如何在输入的时候只能输入数字和相关字符,而对别的字符不响应,即对其它字符的e.Handled属性设为True。 private void txtMile_KeyPress(object sender, KeyPressEventArgs e) { if ((int)e.KeyChar == 8) //响应Backspace键 e.Handled = false; else if (e.KeyChar == '.') e.Handled = false; ... 阅读全文
posted @ 2012-12-17 16:39 单单的风 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 最近做了一个例子,假如有一个主窗体,然后要调另一个窗体,且子窗体中有DataGridView控件 ,且DataGridView本身有双击事件,然后调起的时候要用到与它不同的双击事件,这就需要我们对DataGridView本身的双击事件进行屏蔽。我们就要另写个函数来做。代码如下private void ClearEvent(DataGridView dgvEqup) { PropertyInfo propertyInfo = (typeof(System.Windows.Forms.DataGridView)).GetProperty(... 阅读全文
posted @ 2012-12-15 17:45 单单的风 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 一个窗体使用另一个窗体的控件信息,使用Control类foreach (Control ctrl in mesToolForm.Controls){ if (ctrl.Name.ToString() == "dgvlSMesTools") ctrl.Visible = false;} 阅读全文
posted @ 2012-09-05 09:41 单单的风 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1 判断DataGridView是否有选中行,使用dgv.selectedRows.count==0?2 判断点击的那个单元格属于哪一列:DataGridView dgv = (DataGridView)sender; if (dgv.Columns[e.ColumnIndex].Name == "测试设备名称")3 使用列名,而不用数字标号来定位单元格: dgv.SelectedRows[0].Cells["mESTOOLSNAMEDataGridViewTextBoxColumn"].Value.ToString();4 在DataGridView上 阅读全文
posted @ 2012-08-31 11:44 单单的风 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 报表浏览器存放报表,并为报表设置数据源,我们一般是一个数据源对应一个类对象,这就要我们建个类,类里存放要在报表里显示的信息,这个类就相当于报表也DataTable之前联系的桥梁。rvw.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("FormIsPatrs_parts", this.is_parts));这句是为报表添加数据源,FormIsPatrs_parts为项目的类,is_parts为DataTable名class parts : System.Data.Da 阅读全文
posted @ 2012-08-26 14:30 单单的风 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 前两天做关于数据库多行提交的问题,现把其中的一些点列出来说一下,现以多行添加为例来介绍。 多行提交,肯定就是要使用数组,首先要把添加的多行数据更新到DataTable里,然后使用DataTable的GetChanges()函数来获得改变的行,把每一列的信息存放到定义好的数组里面去,然后通过与数据库之前的交互将多行数据循环添加到后台。 现在结合代码具体来介绍一下。写了一行数据的时候就新建一行,并添加到DataTable里1 DataRow row = this.is_parts.NewRow();2 row["PARTS_NAME"] = txtName.Text;3 row 阅读全文
posted @ 2012-08-26 14:18 单单的风 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 在文件上传下载这个例子中的委托与事件,主要是用于窗体与类之间的交互,在主窗体中定义了FileInfo类的对象fileInfo,当开始上传的时候,主窗体的进度条要根据finleInfo读写的进度进行相应的变化,此处就用到了委托与事件。先看下过程:先在FileInfo类中定义委托,并用委托定义事件public delegate void FileTranEventHandler(object sender, EventArgs e);//定义委托public event FileTranEventHandler FileBuffer;//写完一块触发的事件当点击上传按钮时,当事件的处理方法绑定到. 阅读全文
posted @ 2012-08-18 10:26 单单的风 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 前几天做了个文件上传下载的例子,就是对Blob对象的上传下载,现把其中遇到的问题以及解决方法在这里再顺一遍。 大家都知道我们的文件是保存在硬盘,也就是外存中的,那我们在上传的时候就要先把文件调入到内存。而内存的容量是有限的,如果我们的文件过于庞大,就会占用太多的内存,所以我们就要把文件分块,然后再把文件一块一块的读入到内存缓冲区中,然后再把缓冲区中的数据读到数据库Blob对象里。那这个Blob对象又是哪来的呢,这就要求我们先向数据库中注册文件的其它信息,包括文件名,文件类型,上传时间等信息,然后同时返回Blob对象名。所以我们需要建一个类来保存文件的信息,以及控制对文件的读写。好,上传大概.. 阅读全文
posted @ 2012-08-18 10:07 单单的风 阅读(1311) 评论(0) 推荐(0) 编辑