找回密码
 立即注册

QQ登录

只需一步,快速开始

pcsky

论坛元老

3

主题

23

帖子

7311

积分

论坛元老

积分
7311

活字格认证

最新发帖
pcsky
论坛元老   /  发表于:2012-6-19 11:27  /   查看:11979  /  回复:12

如图:MultiRow控件的单元格,在输入时输入法被强制设成了全角。
当手工设成半角,再点一下单元格,也会变成全角。

.net的TextBox控件也存在这个问题,但可以在Form_Load里写这个解决。
  1. if (!DesignMode)
  2. {
  3.     this.ImeMode = ImeMode.OnHalf;
  4. }
复制代码

但MultiRow控件为何无效呢,该怎么解决这个问题呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

12 个回复

正序浏览
roger.wang
社区贡献组   /  发表于:2014-5-22 11:18:00
13#
回复 12楼zhata的帖子

谢谢您的反馈  :g~ij:
回复 使用道具 举报
zhata
论坛元老   /  发表于:2014-5-21 15:34:00
12#
该问题我也碰到了,特别麻烦。我采用的方法是直接将全角字符转化为半角字符:
Private Sub mCombobox_KeyPress(ByVal sender As GrapeCity.Win.MultiRow.ComboBoxEditingControl, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles mCombobox.KeyPress
                e.KeyChar = TurnNumer(e.KeyChar)
    End Sub
Public Shared Function TurnNumer(ByVal WB As String) As String

        '将全角字符转换为半角字符
        Const ChinaNumer As String = "1234567890. ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz?*,-"
        Const EnNumer As String = "1234567890. ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz?*,-"
        Dim C As Char
        Dim CC As String
        Dim I As Integer
        For Each C In WB
            I = InStr(1, ChinaNumer, C, CompareMethod.Binary)
            If I <> 0 Then
                CC = Mid(EnNumer, I, 1)
                WB = Replace(WB, C, CC, , , CompareMethod.Binary)
            End If
        Next
        Return WB

    End Function
回复 使用道具 举报
pcsky
论坛元老   /  发表于:2012-7-13 06:21:00
11#
手工转换的方法Win7下有效,XP下失效。
回复 使用道具 举报
pcsky
论坛元老   /  发表于:2012-6-22 20:38:00
10#
现在用手工转换的方法解决了。

http://hi.baidu.com/mycolorwind/ ... 187bfcaf513338.html
回复 使用道具 举报
pcsky
论坛元老   /  发表于:2012-6-20 21:02:00
9#
或许把TextBoxCell类改成从Control继承就可以解决问题了吧。
回复 使用道具 举报
pcsky
论坛元老   /  发表于:2012-6-20 17:24:00
8#
Spread Windows Forms .NET 控件就无这个问题 (版本:SP3版本 2012.03.28更新)

最近发现:
  1. if (!DesignMode)
  2. {
  3.     this.ImeMode = ImeMode.OnHalf;
  4. }
复制代码

这段代码可以不用了,用了DataGridView就会出现这种全角问题,.net自带的TextBox控件正常。
不写以后,DataGridView就正常了。MultiRow问题依旧。

这个能在以后的版本后修正这个bug吗(从系统的底层方面:GrapeCity.Win.MultiRow.dll)?
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2012-6-19 16:21:00
7#
pcsky你好:
不好意思,对于中文输入法会自动变成全角的问题,目前没有找到完美的解决方案。
回复 使用道具 举报
pcsky
论坛元老   /  发表于:2012-6-19 15:36:00
6#
这个在一定程度上解决了问题,但只适用于输入数字和英文的单元格。

如果是中英文混合的就有问题了,如输入“中山路100号”。
具体操作:点一个“英”,切换成中文状态,输入后就变成了“中山路100号”。

不知能否完美解决呢?谢谢!
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2012-6-19 14:45:00
5#
pcsky你好:
请尝试把需要输入数字或英文的Cell的Style.ImeMode属性设置成Off,看是否能满足你的需求。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部