随笔分类 - .Net
.Net
摘要:则当条件失败时,Assert 方法将显示“断言失败”对话框。断言失败时发生的操作是由 Listeners 或 Listeners 属性控制的。 可以重写 System.Diagnostics.TraceListener.Fail(System.String) 方法来写入事件日志而不是显示“断言失败”对话框。 调试和跟踪共享相同的 Listeners 集合,因此,如果将一个侦听器对象添加到应...
阅读全文
摘要:编程语言通常使用两种方法记录字符串长度。 一种在开始处储存字符串长度,一种用一个特殊字符来表示结束标记。 Pascal字符类型采用是前者,C、.Net采用的是后者 后一种字符类型时for(int i;i<s.lenght;i++)是及其低效的
阅读全文
摘要:解决不寻常操作影响鼠标事件捕获的办法: 监视WM_CAPTURECHANGED事件,窗口在鼠标捕获状态改变时触发这个消息 Form1中定义一个内部类,处理将响应WM_CAPTURECHANGED消息的低级Windows过程 CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHigh...
阅读全文
摘要:为了允许属性作为一个字符串编辑,需要为类创建一个新的TypeConverter。 UITypeEditor 十三 滚动 AutoScroll说明控件师傅大体上设为显示滚动条 AutoScrollMinSize是Size类型,它储存虚拟空间的大小。 虚拟空间的大小通常是潜在无限的,使用在内存中永久表示虚拟空间的绘图技术是不可行的。 bitBlt操作 可滚动控件中放置不可滚动控件,Panel中放P...
阅读全文
摘要:十一 Windows Form自定义控件 如果修改属性会改变自定义控件的外观,那么在属性set中调用Invalidate()方法就很重要 通知VS.NET默认值的两种机制: 1.在属性定义前设置一个属性[DefaultValue()] 2.DefaultValue不能用户Color,可使用Reset和ShouldSerialize方法的技术。Reset()吧属性重置为他的默认值,ShouldSer...
阅读全文
摘要:八 变换 ScaleTransform方法:缩放变换,连同初试点和画笔宽度一起缩放 TranslateTransform方法:平移变换,将原点坐标平移,此句以后的画图都将以平移后的原点做原点 ResetTransform方法:重设变换 RotateTransform方法:旋转变幻 矩阵和变换 应用变换时失效区域没有改变 变换不应用与裁剪失效 九 打印 打印机的像素比显示的像素小的多
阅读全文
摘要:七 裁剪和失效 失效的意思就是说图形界面需要重新绘制 SetClip函数 SetClip函数的参数CombineMode枚举 if(cellRect.IntersectsWith(e.ClipRectangle)//判断矩形是否与Paint事件更新显示的矩形相交 if(!g.IsVisibleClipEmpty)//裁剪区域可见 窗体的ResizeRedraw属性为true,强制执行一次彻底的重新...
阅读全文
摘要:五 图像 双倍缓存:完全准备图像之后再把他绘制到屏幕上 将下列三句写入Load时间中,即可激活双倍缓存 SetStyle(ControlStyles.DoubleBuffer,true);//所有绘图操作都在缓存器中,绘图操作完成后绘制到屏幕上 SetStyle(ControlStyles.AllPaintingInWmPaint,true);//窗口背景不在单独操作中绘制,,UserPain...
阅读全文
摘要:这一阵因为项目需要开始看GDI编程方面的书。 如果绘图和填充任务的分离课余减少改变钢笔和笔刷操作的次数,就可以大大提高性能 使用完Font对象后,记得Dispose,或者using 在建立自定义控件时,只要可能,就应使用Form对象的Font属性,而不是创建自己的Font 图象分辨率和屏幕分辨率的换算。图象平行扭曲、旋转:给DrawImage传左上、右上、左下三个点
阅读全文
摘要:状态一致性问题的几个经验 1.尽可能晚的给状态赋值 2.如果必须给状态赋值最好使用try、finally语句,收到异常之后应该恢复已修改了的状态 3.通常,编写的代码应该尽可能少地修改全局状态 try语句后面可跟多个catch,catch捕捉Exception时顺序很重要,应该从特殊到通用 自定义异常: 致命的用户自定义异常从Exception派生 非致命的应用程序错误从Applicati...
阅读全文
摘要:错误与异常 异常是有可能发生但不应该发生的情况,从代码特定位置无法欲知异常是否会发生 如果能准确之处发生异常的位置,那就是错误 从编码角度,要么产生异常,要么正确处理错误 更好的策略是不要返回空对象(null),要么返回一个没有内容的对象,要么返回拥有默认数值的对象,或者产生一个异常来显示一个有意义信息 不应该把设置默认状态的代码放在构造函数内部,而应设置一个独立的方法,构造函数调用这...
阅读全文
摘要:三种可以继承的类型:classinterfacestructinterface、struct只能继承自其他接口struct是值类型,字段保存在栈中class是引用类型,字段是对堆中数据的引用struct的值类型作为参数传递到方法时,类型的值被拷贝到栈党中,改变栈中的值是原类型的值的拷贝发生变化,原来实例的值不发生变化。除非有很好的理由,不要在struct中继承接口 用new覆盖基类方法:pub...
阅读全文
摘要:Web 服务描述语言工具从 WSDL 协定文件、XSD 架构和 .discomap 发现文档为 XML Web services 和 XML Web services 客户端生成代码。 wsdl [options] {URL | path} 如wsdl /n:MyMath http://localhost/mathservice.asmx 即一个对asmx进行了封装调用的cs文件。在各项目中可...
阅读全文
摘要:Thread.IsBackground = true把线程设为后台线程可以使前台线程(如Main()的线程)结束后,后台线程立即停止,否则这个线程会在执行完以后才停止 Thread.Jion();在当前线程执行完以后才进入后面的程序,如等待线程被释放Thread.Abort();终止线程 ThreadStart(WaitCallBack);其实就是个委托:public delegate voi...
阅读全文
摘要:研究了差不多一个月的从内存中显示图片到WEBBROWSER控件。 摘了差不多30W字的文章和帖子,层层难关都突破了, 没想到在最后一个环节遭遇了IE5.0以上版本FRAME文档不能IPersistStreamInit的BUG。 真是气死我了,本还想等走通了客户端显示里这个难题可以扬眉吐气请假去北京玩两天的, 结果这下如意算盘全泡汤了。 郁闷!真想杀去西雅图MS总部…
阅读全文
浙公网安备 33010602011771号