分类 心得体会 下的文章

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 <= 48 && e.KeyValue <57) || 
  (e.KeyValue >= 96 && e.KeyValue < 105) 
  && e.Shift == false)) 
  {
     bflag=false;
  }
  else                                      
  {
     bflag=true;
  }
  else                              
  {
     bflag=false;
  }
}

最后,在CellBeginEdit事件中添加如下代码:

if (bflag)             
{                 
  e.Cancel = true;             
}             
else             
{                 
  e.Cancel = false;             
} 

方法二:

在GridView的CellValidating事件中,加入以下代码:

if (!System.Text.RegularExpressions.
Regex.IsMatch(e.FormattedValue.ToString(), @"^[0-9]*$"))             
{                                
  e.Cancel = true;             
}             
else             
{                 
  e.Cancel = false;             
} 

PS:这些都是以前写的文章,我重新搬过来手写了一遍,另外,第二种则更为简单直接,并且,用到了正则表达式。


C# 程序如何支持DPI缩放


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

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