首页 > 学院 > 开发设计 > 正文

csharp:datagridview enter Half Width and Full Width characters

2019-11-17 02:34:38
字体:
来源:转载
供稿:网友

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);            }        }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表