作者: 狂野の屠夫

  • C#窗体设计时界面修复方法整理

    很多时候,打开别人的源码,由于 vs 版本的不一致,或多或少会发生设计时窗体打不开,出现各种各样的报错。
    解决的方法,如下:

    • 一、控件或基类中的常用替换

    ComponentResourceManager manager 替换为 ComponentResourceManager resources
    manager.GetObject 替换为 resources.GetObject

    BorderStyle = BorderStyle. 替换为 BorderStyle =

    System.Windows.Forms.BorderStyle.

    base.ImeMode = ImeMode.KatakanaHalf; 替换为 base.ImeMode =

    System.Windows.Forms.ImeMode.KatakanaHalf;
    base.AutoScaleMode = AutoScaleMode.Font; 替换为 base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    base.FormBorderStyle = FormBorderStyle.None; 替换为 base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

    base.StartPosition = FormStartPosition. 替换为 base.StartPosition =
    System.Windows.Forms.FormStartPosition.

    • 二、恢复资源文件
    1. 打开 Visual Studio 命令提示
    2. resgen 具体路径原始资源.resources 具体路径修复资源.resx)
  • Net4.5 智能提醒汉化异常问题

    安装完毕 VS2015 后,自动安装了 net framework 4.5 及 对应的语言包。但是,安装了其他 vs 版本后,或者安装了高版本的 net framwork 后,会导致智能提醒中的类说明,以及方法说明变成英文。可能是一个 Bug,所以,本文提供对应的原版汉化后的 xml 文件进行替换。


    下载:
    zh-Hans.zip

  • Webbrowser 强制当前窗口打开链接方法

    这个功能解决的方法,网上一搜比比皆是,方法大多都一样,我的方法也不例外,这次再写,也是因为我之前博客也写过此文章,这次就当作记录一次心得。
    在 webbrowser 的 NewWindow 事件中,增加如下代码:

    string sUrl = ((WebBrowser)sender).StatusText;
    ((WebBrowser)sender).Navigate(sUrl);
    e.Cancel = true;

  • C# 简体字转换繁体字代码

    1. 简体转繁体,网上其实功能有很多,我直接放上核心代码:

    Microsoft.VisualBasic.Strings.StrConv(“ 简体转繁体”,
    Microsoft.VisualBasic.VbStrConv.TraditionalChinese,0);
    Microsoft.VisualBasic.Strings.StrConv(“ 繁体转简体”,
    Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0);

    1. 单纯使用 c#,可以用 API 函数,代码如下:

    private const int LOCALE_SYSTEM_DEFAULT = 0x0800;
    private const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;
    private const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;
    [DllImport(“kernel32”, CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int LCMapString(int Locale, int dwMapFlags,
    string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest);

  • C# DateGridView 单元格输入验证方法

    目的用于限制 VS 原生 DataGridView 控件单元格输入验证,有如下两种办法:

    方法一:

    定义全局变量 bflag:

    private bool bflag =false;

    然后,在 PreviewKeyDown 事件中添加如下代码:

    if (Grid.CurrentCell.ColumnIndex == 1)
    {
    if (((e.KeyValue

  • C# 程序如何支持 DPI 缩放

    如今,系统更新日新月异,就拿 win10 来说,从最初的版本更新到目前的 1709,中间断断续续已经有很多版本发布了。同样的,现在硬件上高分屏,2K,4K 屏越来越多,越来越频繁。
    那么,此时,你开发的软件界面,若不能很好的支持 DPI 缩放,那么,打开的时候,如果屏幕分辨率很高的话,那么,你软件的字体会非常的小,看着很难受。如果用自带的缩放,又会很模糊,那么,怎么办?
    你可以使用如下代码,将这块代码嵌入到你的 Program 中。在启动窗体时,加入如下代码:

    [DllImport(“user32.dll”)]
    private static extern void SetProcessDPIAware();