共计 6 篇文章

移除 DevExpress 的 XtraForm 标题文字阴影

问题 在使用 DevExpress 开发 WinForm 程序时,我是使用的默认皮肤进行开发。但客户要求标题栏背景色改为蓝色,标题文字颜色改为白色。 改颜色比较简单,参考了 DevExpress Support 的说明,通过获取皮肤更改 BackColor 和 ForeColor 就可以实现。不过更改之后,发现在低分屏下面,标题文字出现模糊的情况。 原因 初步猜想应该是文字阴影的问题,但搜索了大部分资料没有找到解决方案,最后在 ...

异常吞噬问题一则

问题 在一个 Timer 时钟的周期方法内,有一个 foreach 循环,当执行到某些特定的语句时,会从头开始执行,而不会执行后续的语句。 分析 该问题我在初步分析之后,发现可能是由于程序出现了异常,但是被吞噬掉造成的。在我某一个 item 元素当中,其值为 null 应该会抛出空异常。但是没有异常抛出,后续我不知道哪个地方吞噬了异常,就在循环体内增加了一个 if 语句过滤掉了 null ...

DevExpress 使用 GridControl 时,数据源无法立即更新的问题

背景 在使用 DevExpress 的 GridControl 为其实现 Checkbox 列,发现如果勾选了三行的数据,在遍历 GridControl 绑定的数据源时 Checkbox 列的数据仅有 2 行被更新。 原因 使用 Google 搜索了半天,在 DevExpress 的 Support 上找到了答案,似乎是需要手动调用 ...

WinForm 在线程中启动新的窗口

由于工程需要在线程当中加载一个新的WinForm窗口,但是直接在线程中加载会立即闪退,我认为是线程执行完成之后自动销毁了new的窗口。 new Thread(()=>{new Form2().Show();}).Start(); 之后谷歌了一番,有人提到使用异步委托在线程中来加载新的窗口: new Thread(()=>{BeginInvoke(new MethodInvoker(()=> { new Form2().Show(); }));}).Start(); 使用如上方法能够正常运行。 ...

实现毛玻璃效果

经过测试只能在Windows7 下正常使用,在Win8或者Xp下面无法正常显示毛玻璃效果。 首先你要先创建一个结构体如下: [StructLayout(LayoutKind.Sequential)] public struct MARGINS { public MARGINS(Thickness t) { Left = (int)t.Left; Right = (int)t.Right; Top = (int)t.Top; ...