Spread WinForm 定义单元格类型自动将输入内容全角变为半角
可以在 fpSpread1_EditModeOff 事件中实现转换,代码如下:
private void fpSpread1_EditModeOff(object sender, EventArgs e) { FarPoint.Win.Spread.CellType.RegularExpressionCellType editor = this.fpSpread1.Sheets[0].GetEditor(0, 0) as FarPoint.Win.Spread.CellType.RegularExpressionCellType; string text = ToDBC(this.fpSpread1.EditingControl.Text); string text1 = ToSBC(this.fpSpread1.EditingControl.Text); } // /全角空格为12288,半角空格为32 // /其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 public static String ToDBC(String input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new String(c); } public static String ToSBC(String input) { // 半角转全角: char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 32) { c[i] = (char)12288; continue; } if (c[i] < 127) c[i] = (char)(c[i] + 65248); } return new String(c); }