随笔分类 - C#
C#编程遇到的点滴
摘要:发现当treeview控件失去焦点的时候,会丢失选中状态的指示(条目的蓝色背景)。如果想要保持,只要设置treeview的一个属性即可:this.treeView1.HideSelection = false;但是,发现阴影很浅,但是聊胜于无。在博客园上找到了“大气象学习园地”的一篇博文(链接),刚好说到这个事,他通过重写DrawMode()来控制选中节点颜色,把他的代码也贴上:public FrmMain(){ InitializeComponent(); treeView1.HideSelection = False; //自已绘制 this.treeView1....
阅读全文
摘要:MSDN里面说到:一旦启动线程,便不必保留对 Thread 对象的引用。 线程将继续执行,直到该线程过程完成。下面代码可作为例子,各个线程都有在运行: ThreadStart th; Thread t5; //虽然用了同一个名称,但是在运行的时候用了不同的线程 for (int i = 0; i < 4; i++) { th = new ThreadStart(abc.Output); t5 = new Thread(th);...
阅读全文
摘要:C#中数组复制的4种方法 from:http://blog.csdn.net/burningcpu/article/details/1434167今天旁边的同事MM叫我调了一段程序,她想复制一个数组,int[] pins = {9,3,4,9};int [] alias = pins;这里出了错误,也是错误的根源,以上代码并没有出错,但是根本不是复制,因为pins和alias都是引用,存在于堆栈中,而数据 9,3,4,3是一个int对象存在于堆中,int [] alias = pins;只不过是创建另一个引用,alias和pins同时指向{9,3,4,3},当修改其中一个引用的时候,势必影响.
阅读全文
摘要:今天调试串口,发现BytesToRead可以比ReadBufferSize属性值大,而且这个大不是表面数值上的大,实际数据也没有丢失。查了MSDN SerialPort. BytesToRead 属性 发现如下说明:由于 ReadBufferSize 属性只表示 Windows 创建的缓冲区,而 BytesToRead 属性除了表示 Windows 创建的缓冲区外还表示 SerialPort 缓冲区,所以 BytesToRead 属性可以返回一个比 ReadBufferSize 属性大的值。 接收缓冲区包括串行驱动程序的接收缓冲区以及 SerialPort 对象自身的内部缓冲。那么串行驱动..
阅读全文
摘要:在写C#的时候,有时候需要应用程序配置文件,即 "应用程序名.config",也可为“应用程序名.exe.config”,对于这两种名称,程序在运行时都能够正确读取,假如两者都存在,则优先读取“应用程序名.exe.config”。可以说,对于应用程序的运行,这两个命名没有区别,但是,在其他一些方面,这两个就有一些区别了。情景一: 调试时 进行debug调试的时候,程序只读取“应用程序名.exe.config”这种配置文件,当你的调试目录下有"应用程序名.config"而没有“应用程序名.exe.config”的时候,你读取到的结果将是null,即使你的&
阅读全文
摘要:1 // Get the application configuration file. 2 System.Configuration.Configuration config = 3 ConfigurationManager.OpenExeConfiguration( 4 ConfigurationUserLevel.None); 5 string sectionName = "appSettings"; 6 7 NameVa...
阅读全文
摘要:使用oledb导出数据,有一个字段是varchar的,导到一个数据时出错,提示:"字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据"。后来把字段属性改为Ntext或者Memo就可以了,那么Varchar、Ntext、Memo都有什么区别呢?字段的属性还可以是什么格式呢?例如还可以是 Integer。
阅读全文
摘要:String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=c:/test.xls;" + "Extended Properties=Excel 8.0;";OleDbConnection cn = new OleDbConnection(sConnectionString);cn.Open();DataTable tb = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);forea
阅读全文
摘要:使用C#,想把数据的导出为2007格式的Excel,扩展名为xlsx,开始使用如下的连接语句:sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + "Extended Properties='Excel 12.0;HDR=YES;'";fileName里面指示的扩展名为xlsx,导出成功后一打开,提示:打不开文件,后来把文件后缀改为xls可以打开,但没有显示“兼容模式”
阅读全文
摘要:SqlCommand.Parameters 属性private static void UpdateDemographics(Int32 customerID, string demoXml, string connectionString){ // Update the demographics for a store, which is stored // in an xml column. string commandText = "UPDATE Sales.Store SET Demographics = @demographics " + "...
阅读全文
摘要:关于这个问题,网上有说可在KeyDown事件里面给一个全局变量赋值,以此来判断是否按下了ctrl键,代码如下://在keydown事件中写if (e.Control == true){ //给一个全局标志位赋值,表示ctrl按下了 a = true;} 然后再在mousedown时间里面判断这个标志位。 但是这么做有一个问题,应该在哪里使得 a 变回 false呢,不变回false,那么以后都表示ctrl是按下状态了。 后来找到一个更好的方法了,其实有这么一个属性(Control.ModifierKeys),只要在mousedown事件里面判断就行了,假如什么修饰键都没有按,那么...
阅读全文
摘要:int[] num0 = { 28, 32, 14 };int[] num1 = {14,15,16};如上,我想把num0中不包含于num1的元素都找出来,其正确结果应该是28,32。早上看到原来linq可以写多个from字句,之后就想到了这样的写法:int[] num0 = { 28, 32, 14 };int[] num1 = {14,15,16};var qq = from n1 in num0from n2 in num1where n1 != n2select n1;结果,我错了,调试了一下才知道自己想当然了。结果如下:总共进行了3 * 3,9次比较,那个语句把所有成立的n1都选进
阅读全文
摘要:写个小应用,主要是方便选中日期到datagridview,就想到利用MonthCalendar显示一个月历,然后利用鼠标点击选择。实现的方法主要是利用了mousedown事件以及MonthCalendar的HitTest()方法。 说说HitTest() 方法先,这个方法返回MonthCalendar ..::. HitTestInfo 类型,这种类型里面包含3种属性:HitArea、Point、Time。其中HitArea是一个枚举,包含成员名称说明Nowhere指定点或者不在月历控件上,或者在控件的非活动部分。TitleBackground指定点在月标题的背景上。TitleMonth指定.
阅读全文
摘要:1、数据绑定 dataGridView1.AutoGenerateColumns = true; dataGridView1.DataSource = customersDataSet;这样就会自动产生对应数据的行数据了。如果不自动产生列,则需手动添加列,把列的数据源属性名(DataPropertyName)设置为对应数据类的属性名。2、手动添加 songsDataGridView.ColumnCount = 5; .... songsDataGridView.Columns[0].Name = "Release Date"; ......
阅读全文
摘要:给datagridview绑定了一个List<T>的数据源,但是我仅仅想显示class T中的某几个属性怎么办,在网上查到了一下几种方法:方法一:设置AutoGenerateColumns = false;手动添加列,并把列的DataPropertyName属性设置为源中的类的对应属性的名方法二:将类中不想显示的属性加上属性(attitude): [System .ComponentModel .Browsable (false )]例如,我不想显示a属性,可以如此: [System.ComponentModel.Browsable(false)] public int...
阅读全文
摘要:以.net4.0为例.NET Framework 4 Client Profile 是 .NET Framework 4 已针对客户端应用程序进行优化的一个子集。 它提供了适用于大多数客户端应用程序的功能,包括 Windows Presentation Foundation (WPF)、Windows 窗体、Windows Communication Foundation (WCF) 和 ClickOnce 功能。 这使得以 .NET Framework 4 Client Profile 为目标的应用程序的部署速度加快且安装包变小。.NET Framework Client Profile 中
阅读全文
摘要:今天写代码,要用Index取得List<T>中对应Index的元素,查看了MSDN,发现List<T>有个Item属性,就想当然地用了//取最后一个元素//listOutAtWorkTime为一个List<T>变量this.listOutAtWorkTime.Item[this.listOutAtWorkTime.Count - 1]结果提示:这个类型不包含“Item”的定义。这个相当的奇怪,MSDN上明明有的。再仔细看看MSDN说明,看看里面的例子,发现它应该这么引用的:List<string> dinosaurs = new List<
阅读全文

浙公网安备 33010602011771号