紫雨轩 .Net, DNGuard HVM , .Net VMProtect

DNGuard HVM - Advanced .NET Code Protection Technology

常用链接

统计

积分与排名

友情连接

最新评论

C# Winform编程

winform相关
ComboBox 使用数据绑定时 Sorted 属性的bug
摘要: 调查一个奇怪的系统异常时发现的这个bug,现象就是用户在ComboBox里面选择一项后,程序在SelectIndexChanged 事件中根据用户选择刷新数据时出现错误。跟踪调试后才发现原来是SelectedValue 值和用户选择的Item项不一致。 但是为什么会出现这样奇怪的错误呢?阅读全文

posted @ 2009-06-25 17:15 紫雨轩 .Net 阅读(1882) | 评论 (11) 编辑

DNGuard Enterprise v2.95 released

posted @ 2008-07-10 23:46 紫雨轩 .Net 阅读(582) | 评论 (2) 编辑

在 FlexGrid 控件中指定最右侧显示的列
摘要: FlexGrid 控件提供了指定左侧显示列的功能。因项目的需要,要求能够指定最右侧显示的列。
实现方法:
获取表格客户区宽度,然后通过每列的宽度计算出水平滚动条的位置。
但是有一个麻烦,就是垂直滚动条的问题。
首先要能判断是否有垂直滚动条,
然后有垂直滚动条时,需要减出垂直滚动条的宽度,
但是控件没有提供这方面的接口阅读全文

posted @ 2008-06-26 11:22 紫雨轩 .Net 阅读(1183) | 评论 (6) 编辑

采用Native 引导方式的.Net加密保护
摘要: 这类加密保护方式属于整体程序集的加密保护.
这个方法首要解决的问题就是 native code 和 .Net Code如何交互.
这里介绍三种实现方式.阅读全文

posted @ 2008-02-01 10:12 紫雨轩 .Net 阅读(2688) | 评论 (8) 编辑

C#中使用晚绑定实现压缩Access数据库
摘要: C#中使用晚绑定实现压缩Access数据库.
VB对Com后期绑定支持得很好,在C#中可以使用反射来实现.
阅读全文

posted @ 2008-01-25 14:20 紫雨轩 .Net 阅读(2210) | 评论 (6) 编辑

直接在.Net程序(C#)中执行 native code
摘要: 不使用C++CLI,不使用 native dll.
直接在 .Net 程序 中之行 native code。
阅读全文

posted @ 2008-01-22 21:46 紫雨轩 .Net 阅读(3218) | 评论 (12) 编辑

C#复杂表达式的问题
摘要: 测试程序发现了一个bug, 几经调试最后定位到一条复杂表达式语句的计算结果不正确.
代码中用复杂表达式不是一个好习惯,调试起来很不方便.
为了方便跟踪调试,看看究竟是表达式的那部分计算出了问题.
就先把表达式拆开来写了.
再运行, 嗨, bug没有了. 跟踪看了表达式最终计算结果,也正确了.阅读全文

posted @ 2008-01-10 17:25 紫雨轩 .Net 阅读(2318) | 评论 (14) 编辑

.Net中的数字类型四则运算的有趣问题
摘要: 看看下面的代码: 你觉得这段代码能否正确执行?结果会怎样?
sbyte sba, sbb,sbv;
sba = 1; sbb = 2; sbv = sba + sbb;

byte ba, bb, bv;
ba = 1; bb = 2; bv = ba + bb;阅读全文

posted @ 2007-11-29 11:38 紫雨轩 .Net 阅读(2615) | 评论 (55) 编辑

讨论 winform 引擎以及 CancelButton,OKButton 的实现原理
摘要: 前面提到了form关闭时的两个奇怪现象,有不少朋友参与了讨论。
有些朋友还没有看清楚问题的所在就很轻率的评论。
A.Z. 在讨论中已经找到的问题的基本所在,问题关键还是在 CalledClosing 这个变量的状态。

这个问题要从另外一个奇怪现象说起。
为什么直接给 form的DialogResult属性赋值会导致form关闭?
这个属性的set函数如下:
public void set_DialogResult(DialogResult value)
{
if (!ClientUtils.IsEnumValid(value, (int) value, 0, 7))
{
throw new InvalidEnumArgumentException("value", (int) value, typeof(DialogResult));
}
this.dialogResult = value;
}
很明显,这个set函数不可能直接导致 form的关闭。阅读全文

posted @ 2007-09-24 18:03 紫雨轩 .Net 阅读(2349) | 评论 (14) 编辑

form关闭时的一个奇特现象
摘要: 今天查一个错误时发现这个问题。
有一个frmEdit。在Closing事件里面判断数据是否修改,然后提示用户是否需要保存数据。
提供了三个按钮,yes,no,cancel。
yes:保存数据,关闭窗体。
no:直接关闭窗体。
cancel:不关闭窗体。

实际运行,点yes,cancel,处理都对,但是点 no,就会重复弹出这个对话框,
如果一直点 no的话,就会一直出现。

看一眼代码没有发现明显问题,实际调试才发现问题所在。
代码如下:阅读全文

posted @ 2007-09-21 11:35 紫雨轩 .Net 阅读(3037) | 评论 (50) 编辑

DataGridView 绑定DataTable方式编辑保存的bug?

posted @ 2006-07-14 10:10 紫雨轩 .Net 阅读(7922) | 评论 (13) 编辑

在 C# 中动态调用 native dll 的导出函数
摘要: 在 C++ 中我们能够通过 LoadLibrary, GetProcAddress 来动态调用 dll 的导出函数.
在 C# 中也能够用这样的方式吗?
阅读全文

posted @ 2006-07-13 14:28 紫雨轩 .Net 阅读(3410) | 评论 (17) 编辑

从 DataGridView 控件 托放数据 到 TreeView控件(二)
摘要: 前面我们只处理了 DataGridView 的mousedown事件, 现在要处理 mousedown, mousemove, mouseup这三个事件来完成这个任务.
大致过程如下:

在MouseDown事件里面和之前一样处理,只是不启动拖放操作.
而是保存要拖放的数据, 以及建立一个小的矩形框(根据系统DragSize信息).

然后在 MouseMove 事件里面判断
是否已经准备好拖放了,如果准备好了,就启动拖放操作.
(注:鼠标在小矩形框范围内的移动不启动拖放操作)

MouseUp里面清除哪些标记量.

这样就能处理左键单击的选择和 左键拖放了阅读全文

posted @ 2006-07-13 10:15 紫雨轩 .Net 阅读(1849) | 评论 (1) 编辑

从 DataGridView 控件 托放数据 到 TreeView控件

posted @ 2006-07-13 01:28 紫雨轩 .Net 阅读(3947) | 评论 (4) 编辑

DateTimePicker 数据绑定遭遇 null 值的解决方法

posted @ 2006-07-11 17:54 紫雨轩 .Net 阅读(1455) | 评论 (1) 编辑

ComboBox 绑定到数据表中一个列的问题

posted @ 2006-07-11 10:11 紫雨轩 .Net 阅读(4188) | 评论 (1) 编辑