zoukankan      html  css  js  c++  java
  • csharp:datagridview enter Half Width and Full Width characters

            /// <summary>
            /// 全角
            /// </summary>
            /// <param name="unicodeString"></param>
            /// <returns></returns>
            public static string FullWidthConvertor(string unicodeString)
            {
    
                StringBuilder sb = new StringBuilder(256);
                LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_FULLWIDTH, unicodeString, -1, sb, sb.Capacity);
                return sb.ToString();
    
            }
            /// <summary>
            /// 半角
            /// </summary>
            /// <param name="unicodeString"></param>
            /// <returns></returns>
            public static string HalfWidthConvertor(string unicodeString)
            {
    
                StringBuilder sb = new StringBuilder(256);
                LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_HALFWIDTH, unicodeString, -1, sb, sb.Capacity);
                return sb.ToString();
    
    
            }
            private const uint LCMAP_FULLWIDTH = 0x00800000;
            private const uint LOCALE_SYSTEM_DEFAULT = 0x0800;
            private const uint LCMAP_HALFWIDTH = 0x00400000;
    
            [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
            public static extern int LCMapString(uint Locale, uint dwMapFlags, string lpSrcStr, int cchSrc, StringBuilder lpDestStr, int cchDest);
    
    
    
      /// <summary>
            /// DataGridView单位格输入全角转半角
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void dridViewRowNumberNo_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                GridViewRowNumberNo dt = sender as GridViewRowNumberNo;
                //获取列序号
                int columnIndex = dt.CurrentCell.ColumnIndex;
                //单位格转化成文本框
                TextBox tb = e.Control as TextBox;
                //委托单位格KeyPress事务
                tb.KeyPress += new KeyPressEventHandler(geovindu_KeyPress);
            }
            /// <summary>
            /// 单位格KeyPress事务
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void geovindu_KeyPress(object sender, KeyPressEventArgs e)
            {
                Control ctl = sender as Control;
                if (ctl == null)
                    return;
                if (ctl.ImeMode != ImeMode.Hangul)
                    ctl.ImeMode = ImeMode.Hangul;
                //全角转半角
                if (e.KeyChar >= 65296 && e.KeyChar <= 65305)
                {
                    e.KeyChar -= Convert.ToChar(65248);
                }
    
            }
    
  • 相关阅读:
    Mac下安装LNMP(Nginx+PHP5.6)环境
    MySQL中文全文检索
    关于Mysql模糊查询的优化-全文检索和Like的使用
    MySql全文索引
    为mysql数据库建立索引
    【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合
    PHP中利用redis实现消息队列处理高并发请求
    Windows下为PHP安装redis扩展
    Linux中postfix邮件服务器的搭建
    ELK日志分析系统(转)
  • 原文地址:https://www.cnblogs.com/geovindu/p/4277173.html
Copyright © 2011-2022 走看看