
.net
laorer
...
展开
-
C# 用匿名委托的方式简化Thread 和 Controle.Invoke的写法
<br /> 1. Thread<br />C# 程序中,如果要新建一个 Thread 的话,一般需要另建一个 方法,如果要传参数的话,需要的步骤比较麻烦,<br />参考一<br />Thread oThread = new Thread(new ThreadStart(threadMethod)); <br />private void threadMethod(){<br />..<br />};<br />如果要向线程传递参数<br />public static void myStaticPar原创 2010-09-06 17:14:00 · 15054 阅读 · 0 评论 -
C#列举与网卡相关的配置信息
public static void EnumNetworkAdapterConfiguration() { ManagementClass mc; mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObj原创 2009-11-24 14:13:00 · 1214 阅读 · 1 评论 -
C# 日期型与 byte数组的转换,通过long来考虑
/// /// 将BYTE数组转换为DATETIME类型 /// /// /// public static DateTime BytesToDateTime(byte[] bytes) { if (bytes != null &&原创 2009-11-17 16:12:00 · 5003 阅读 · 2 评论 -
windows 处理语音时需要注意的地方(directSound, ACM)
windows 处理语音时需要注意的地方(directSound, ACM)1.DirectSound播放语音(流式方式)时:secondBuffer 如果采用的是循环缓冲区的,需要在播放时采用循环方式,另外向缓冲区填充语音数据时,LockFlag最好是EntireBuffer2.语音编码/解码(调用ACM)需要注意 nBlockAlign 应该为相应的 WaveFormat 的 Bloc原创 2009-10-21 12:10:00 · 1143 阅读 · 0 评论 -
short数组 到 byte 数组的转换
这里的转换是指在二制上的转换,不是指数值上的转换 public static void Run() { short[] arrs = { -1, 2, 3, -2, 1 }; byte[] arrb = new byte[arrs.Length * 2]; Buffer原创 2009-10-13 16:27:00 · 2749 阅读 · 0 评论 -
VS2005 C#WinForms控件 的一些属性
转自:http://hi.baidu.com/276598908/blog/item/df473eecb713de3b279791dd.htmlVS2005 C#WinForms控件笔记2008年09月07日 星期日 20:37窗体属性 1,AcceptButton 默认“回车”选定的按钮,在不使用Table键的情况下,用户敲击转载 2009-07-09 11:11:00 · 1914 阅读 · 0 评论 -
C# 调用 colorDialog, 列举 字体
private void btnColor_Click(object sender, EventArgs e) { Button btn = sender as Button; ColorDialog colorDialog = new ColorDialog(); colorDialog.Allo原创 2009-06-25 17:20:00 · 2024 阅读 · 2 评论 -
浅学rdl报表
浅学rdl报表 2007-12-21 11:28http://yan.sunny86.blog.163.com/blog/static/421871372007112111284452/分类:编程 字号: 大大 中中 小小 应用于:Microsoft® SQL Server™ 2005 报表服务目录关于这篇文档 其他信息来源 产品版本 简介转载 2009-06-23 14:39:00 · 7931 阅读 · 4 评论 -
C# 用 DirectX Sound 播放音乐文章时的异常
Value does not fall within the expected range.C#播放音乐创建 SecondaryBuffer 辅助的 buffer 时出现了异常,开始不清楚什么原因,后来才发现,应该是语音文件的格式不对,这种方式只能播放 Wav 文件格式(PCM格式),所以随便选一个语音文件应该是不行的,如果没有现成的语音文件,可以考虑用 windows 的 录音机来录一个。原创 2009-08-25 17:44:00 · 1745 阅读 · 0 评论 -
语音的播放与压缩
最近在做语音通信有关的东西,原来没有接触过,所以绕了好大的弯子,尤其是语音压缩与播放一块。在网上找了direct sound播放和压缩有关的内容,但是播放的时间总会有延迟,而压缩的效果也不是很好。后来找到了 朱二的一篇文章(http://zhuer.info/?p=24),用定时器机制来把数据写入到SecondaryBuffer中,这样使用定时器方式后,同时减少检查的间隔,减少secon原创 2010-02-01 10:34:00 · 1571 阅读 · 1 评论 -
根据宽根据宽度来决定显示的字符串长度 (C#,VS2005)度来决定显示的字符串长度 (C#,VS2005)
根据宽度来决定显示的字符串长度 (C#,VS2005)如果 lable长度固定但字符串长度可变,如果超过了lable显示的长度时,希望用 ...代替剩下的字符,这时需要一个函数Graphics.MeasureString具体代码如下 public string Abbreviation(string str) { if (str == null)原创 2010-01-07 10:36:00 · 2946 阅读 · 0 评论 -
gdi 画文字的一些属性
gdi 画文字的一些属性 主要是设置 StringFormat的一些值,Trimming 主要是在不足以显示所有文字时,以怎么样的方式来显示文字, 如下(参考1)StringTrimming 成员-------------------------------------------------------------------------------- 成员名称原创 2010-03-24 10:41:00 · 1711 阅读 · 0 评论 -
c# 杀死进程与子进程
<br />http://www.cnblogs.com/TianFang/archive/2010/05/19/1739614.html<br /> <br />正好碰到这位一样的问题,就直接转过来了<br /> <br />这是个我在C#调用批处理文件时遇到的问题。首先我通过Process.Start方法调用一个批处理文件,那个批处理文件里面则调用了一大堆程序。当退出C#程序时,我在程序中结束杀掉了那个批处理文件的Process,但是,那个批处理所调用的子进程却无法像直接调用批处理文件那样随着批处理文件转载 2010-09-08 10:23:00 · 3902 阅读 · 0 评论 -
C# Form.Hide()后再 Show()时,Dock不为 none的 控件将不会显示。
<br /> <br /> 具体原因不是很清楚,查看了下 Control 的源码, Hide 和Show方法只是改变了 Visible属性,然后看了下OnVisibleChanged方法,里面的内容比较多,我就没细看,想来也是控制其上的子控件的 visible属性,但没看到与 dock有何关系。<br /> <br /> 解决的方法就是设Dock值为 none, 如果想随窗体大小改变而改变时,可以在窗体的 onSizeChanged事件中改变相应控制的大小。<br /> <br /> 其实,只要窗原创 2010-09-08 16:23:00 · 3657 阅读 · 1 评论 -
解决安装程序在win7/vista安装时出现2869的错误
vs2005生成安装程序时,想要加入一些动作,比如在安装完成之后弹出一个窗口,或者在结束安装后运行程序,这时需要使用CustomAction,具体操作参见 Vs2005安装程序完成后,自动启动程序 http://blog.hjenglish.com/optop/articles/1208387.html How can I customize an MSI in the Visual原创 2010-05-07 15:08:00 · 12803 阅读 · 2 评论 -
C#中 foreach最好不要用在多线程中
最近碰到一个问题,需要对一个数组的每个元素在线程上操作,使用了如下的代码: private void ForeachThread(int[] arr) { foreach (int a in arr) { new Thread(delegate() { Console.WriteLine("原创 2010-05-04 15:18:00 · 6252 阅读 · 4 评论 -
C#跨线程调用窗体控件
在使用多线程可能会碰到跨线程调用 Control的属性与方法,但这时通常会报"Cross-thread operation not valid"的异常,解决方法也简单,可以看下 参考1. 大部分的方法是建立一个delegate,然后判断InvokeRequired并新建一个delegate, 但这种方法比较烦琐,多出了比较多的步骤.后来google时,找到了参考2. 里面使用了匿名方法,有原创 2010-05-04 14:01:00 · 1518 阅读 · 0 评论 -
C# winform Panel 获取滚轮事件
使用 Panel 做为控件容器时,设置 Panel.AutoScroll=true时,在适当的时候将会出现滚动条,但是只能通过拖动滚动条来调整滚动条的位置,如果想要用鼠标中间键来控制滚动条的位置,可以通过下面几步来完成1.在构造函数中加上Panel1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Pa原创 2010-04-27 17:12:00 · 6384 阅读 · 0 评论 -
C# 用正则表达式替换字符串时,要注意替换的次数
同时在写表达式时,需要记住,如果表达式字符串前面加了@ ,则表达式中的 "." 表达的什么意思,是只想表示 "."(任意字符) 还是表示"/."(句号)另外如果有多个分组替换时, 最好加上替换的次数,否则出现的情况与所想的不一样 int cnt=0; string str = ""; string strRex = @"(?.*?)((?:/()(?/d+)(?:/)))?(原创 2010-04-16 11:01:00 · 1927 阅读 · 0 评论 -
C# 日期相减
http://blog.youkuaiyun.com/laorer有两种方法:直接调用 DateTime.Subtract,得到一个TimeSpan或者直接DateTime.Tricks相减,差值生成一个TimeSpan,如果想直接得到相差的秒数,可以把差值除以1000000 private static void SubDateTime() { Da原创 2010-01-11 13:32:00 · 1968 阅读 · 0 评论 -
DLL is attempting managed execution inside OS Loader lock 解决
在使用 Direct sound 时,会弹出下面的信息,如果一直按 VS 中的运行,程序会一直运行下去的,即下面的这个异常似乎可以去掉。 DLL bin/Debug/Microsoft.DirectX.DirectSound.dll is attempting managed execution inside OS Loader lock. Do not attempt to原创 2009-08-25 10:46:00 · 2596 阅读 · 0 评论 -
C# winform 的闭关按钮变灰,及取消关闭事件
转载请注明来自: http://blog.youkuaiyun.com/laorer查了些资料,有两种方式,下面是一种,但是没有达到效果,不知道哪里出了问题 private bool isEnableCloseButton = true; protected override CreateParams CreateParams {原创 2009-08-14 13:59:00 · 4046 阅读 · 0 评论 -
c#2.0 中的 dataGridView 的使用
C#中 DataGridView 属性说明http://blog.youkuaiyun.com/tangcx/archive/2007/09/12/1782297.aspxDataGridView重绘代码参考--C# http://www.cnblogs.com/ghostljj/archive/2007/10/05/914423.htmlDataGridView Tutorial in C#http原创 2009-04-08 17:25:00 · 800 阅读 · 0 评论 -
C# 中关于 List 的 Xml序列化
具体代码如下,就是加了两个 Attribute,注意不要写成了 [XmlElement], 否则出现的结果会是 并排的情况, Exrpe Exrpe2而下面产生的结果将是 Exrpe Exrpe2 [XmlArray("Expressions")] [XmlArrayItem("Expression")] pub原创 2009-03-16 14:37:00 · 4528 阅读 · 0 评论 -
重写 TypeConverter 时,自定义子属性顺序
重写 TypeConverter 时,如果子属性需要按一定的顺序 public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { Strin原创 2009-03-16 10:46:00 · 1213 阅读 · 0 评论 -
xml 序列化时, 去掉默认的命名空间
C# 的 xml 序列化时,文档总会带有xmlns:xsd="http://www.w3.org/2001/XMLSchema"andxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"如果想去掉,或者添加自己的命名空间,可以考虑下面的做法 //Create our own namespaces for the outpu原创 2009-03-11 17:25:00 · 8784 阅读 · 1 评论 -
XmlSerializer 常见问题疑难解答
XmlSerializer 常见问题疑难解答 http://msdn.microsoft.com/zh-cn/library/aa302290.aspx发布日期 : 6/30/2004 | 更新日期 : 6/30/2004Christoph Schittko适用于:Microsoft ®Visual Studio ®.NET摘要:Christoph Schitt转载 2009-03-09 10:11:00 · 2335 阅读 · 0 评论 -
.net 序列化时,需要注意的一些问题
1. 需要序列化的类可以继承其他类(但好像要满足一些条件),可以实现其他接口2.需要序列化的字段不可以为空值实验所得 3. enum 不会为空,所以在序列化的时候,带有 enum 类型的属性必须要赋值,否则会报 InvalidOperationException 异常原创 2009-03-02 10:14:00 · 674 阅读 · 0 评论 -
引入 System.Drawing时,引入不进来
用VS2005 开始新建一个 console 项目,后来要用到 Font,但引入 System.Drawing时,引入不进来,这时可以先新建一个 windows form,然后再引入,基本上就可以解决问题了原创 2009-02-27 13:58:00 · 1331 阅读 · 0 评论 -
winform 在不同的机子上显示不一样的解决
上次做了个 winform 的东东,在本机上显示得好好的,但到了 pe 机子上时,winform就拉长了,不清楚什么原因,后来网上找到原因:AutoScale属性 (http://blog.youkuaiyun.com/hesicong/archive/2005/02/09/284907.aspx)最近我我在英文XP SP2环境下制作了一个比较精美的界面,请一个同学帮忙测试。他用的是中文版的操原创 2009-02-09 16:40:00 · 1552 阅读 · 0 评论 -
自定义UserControl中包含封装了集合对象的属性被设计器自动初始化所引起的错误
http://social.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/231fdd62-8157-43c0-b48a-78b05e9f0b11 写的一个 userControl中,打开使用的 form 的设计页面时,总是出现 "的对象无法转换为类型" 上面这个链接给出院解决方法 在相应的 属性上面加上下面这段,就原创 2009-04-09 17:53:00 · 901 阅读 · 0 评论 -
C# 获取被调用函数的信息
C# 获取被调用函数的信息可以在实现自己的 log 方法中使用在参考中加了两条语句... public partial class CallStack : Form { public CallStack() { InitializeComponent(); } privat原创 2009-04-24 09:48:00 · 3844 阅读 · 0 评论 -
ControlDesigner 不存在的解决
在 c#2.0 中,如果自定义设计时的事件,就需要扩展 ControlDesigner,从 msdn 上拷了一个例子,结果报了下面的错误:错误 1 命名空间“System.Windows.Forms.Design”中不存在类型或命名空间名称“ControlDesigner”(是缺少程序集引用吗?) 用对象浏览器查了一下,这个类是存在的,但是编译一直不能通过,而且我的引用中 System.原创 2009-04-30 10:07:00 · 5183 阅读 · 2 评论 -
C# winform 中数据获取与界面显示有关的多线程问题
转载请注明来自: http://blog.youkuaiyun.com/laorer 代码中的 Print 可以当做是获取数据,需要注意的是 While(t !=1) 这部分里要加上 Refresh,否则 gif 是不会动的。 找了一些资料,要用到 InvokeRequred , 不清楚具体怎么用,留着后面考虑. 可以考下: http://topic.youkuaiyun.com/u/200原创 2009-08-13 17:07:00 · 3471 阅读 · 2 评论 -
列举 所有的 culture
private void InitLocale() { CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures); foreach (CultureInfo c in cultures) {原创 2009-07-31 09:16:00 · 712 阅读 · 0 评论 -
PropertyGrid 中修改属性后, 即时显示出来
比如 一个对象 obj(:UserControl), 有一个属性 prop, 其可以在 PropertyGrid 显示出来并能在上面改变,现在在 PropertyGrid 中改变 属性 prop, 希望 其能立即显示出来,而不是等 propertyGrid 失去焦点后 obj 的改变再显示出来, 只需要在 属性 Prop 的 set 的最后一行加上 Invalid()基本上就可以了原创 2009-07-31 15:18:00 · 1722 阅读 · 0 评论 -
rdlc 报表中 Width, PageWidth, InteractiveWidth 各指的是什么?
http://blog.youkuaiyun.com/laorerWidth:报表的宽度,注意这里的宽度不是最终宽度。子容器宽度超过Report.width。最终宽度会改变。 这个似乎是不包含在 margin 的宽度 PageWidth:报表的默认宽度,默认为8.5in(8.5*2.54=21.59cm),整张纸的宽度 这个宽度是 美国 A4纸的宽度 (letter size),与国内的标准不一原创 2009-05-13 17:30:00 · 2722 阅读 · 0 评论 -
C# Panel 中加入 hScrollBar
需求: 要在 Panel 动态的放置多个 Button, 而且是一字排开, 不换行, Panel 的宽度固定的, 所以 Button 特别多时, 就需要有滚动条, 由于某种原因, Panel 的 AutoScroll 要设为 false解决:因为不能使用 Panel 自带的 Scroll 功能, 所以需要加个 HScrollBar, 并且要在设置其 OnScroll 事件具体代码如原创 2009-07-21 18:21:00 · 4600 阅读 · 0 评论 -
OnMouseHover事件获取坐标信息
C# winform 中, OnMouseHover事件没有 坐标信息,如何获取坐标信息呢?可以通过 Control.MousePosition 或 Cursor.Position 得到鼠标所在的屏幕坐标信息,然后通过 PointToClient 转换成工作区的坐标信息Point pt = this.PointToClient(Control.MousePosition)原创 2009-05-08 16:03:00 · 2280 阅读 · 0 评论 -
MDIForm激活子窗体
直接用 是 subForm.Activate();原创 2009-04-30 15:52:00 · 927 阅读 · 0 评论