IME issue on C1FlexGrid

Posted by: epician on 28 March 2020, 2:20 am EST

  • Posted 28 March 2020, 2:20 am EST

    Hello.
    I had experienced Korean IME issue on C1FlexGrid(WPF).

    In display mode, If I type something then C1FlexGrid switching to edit mode. This behavior works fine with English typing.
    But, When typing Korean language (Hangul), It's not switching to edit mode immediately. This switching occurs when I typed space bar or enter key.

    I've tested other grid controls from another companies. Many of them working bad. But, MS DataGrid works perfectly.

    Is this know issue? Can you fix it?

    Thanks.
  • Replied 29 March 2020, 7:43 pm EST

    Hi,

    Sorry for the Inconvenience.

    This issue is known to us and devs are working on it (internal Tracking ID: 426425). Devs have planned to come up with a fix in 2020v2. So, Will inform you once there is any update.

    Regards,
    Basant
  • Marked as Answer

    Replied 19 April 2020, 4:46 pm EST

    Hi,

    As per the developers: It's a limitation. IME is handled specially by MS. However, to workaround it, you can start editing when a cell is selected:

    private void C1FlexGrid1_SelectionChanged(object sender, CellRangeEventArgs e)
    {
    if(e.CellRange.ColumnCount == 1 && e.CellRange.RowCount == 1)
    c1FlexGrid1.StartEditing(true);
    }


    Hope, the above will help.

    Regards,
    Basant
  • Replied 4 May 2020, 3:02 pm EST

    Hello Basant.

    Unfortunately, your workaround can't solve my problem. Because, It's interrupts mouse event handling to show the context menu or do something.

    Elegant way to solve this issue is updating of your component by your dev team, working like MS DataGrid.

    I hope it fixed as soon as possible.
    Thanks.
  • Replied 4 May 2020, 4:00 pm EST

    Hi,

    We are sorry for the inconvenience. However, as we informed you earlier that devs have considered this a limitation of the control. Because changing the behavior might break many other things so, devs have decided to keep the current behavior.

    Hope you'll understand. Regarding workaround, I have passed your concern to the team and will inform you as soon as there is any update.

    Regards,
    Basant
  • Replied 4 May 2020, 4:58 pm EST

    Hi,

    As per the dev: If you can start editing before typing, the IME problem will go away. So, if possible, you can always double click on cell to start editing, or provide a custom menu context (e.g., right click on cell, select "Start Editing" to start editing) before typing.

    ~Basant
  • Replied 4 May 2020, 8:21 pm EST

    I think any other workaround never solve this issue.

    In normal situation, end user may input something like that.
    1. Click a cell which want to type something.
    2. Type text...
    3. Press TAB key to move the focus on next cell.
    4. And input text again. And they may repeats this behaviors.

    As you explained, end user have to do unnecessary actions.
    1. Click a cell which want to type something.
    2. DOUBLE CLICK IT!
    3. Type text...
    4. Press TAB key to move next cell.
    5. AND DOUBLE CLICK IT AGAIN!!
    6. Type text..

    Can you understand this usage pattern of end user? I think NO!
    In my opinion, you should fix this issue for international users.

    p.s: I never experienced this issue with your Winform components.
  • Replied 5 May 2020, 3:04 pm EST

    Hi,

    Please refer to the following comments from the dev team:

    This issue depends on IME implementation. From our side we saw different IME-related issues both in WinForms and WPF controls. Please note, that IME implementations might be very different depending on OS version or country. There are issues with Korean IME which don't happen with Japanes or Chinese IME. So, we prefer to keep this issue as limitation as it is the best working variant for all IMEs we tested so far.

    Suggested workaround:

    private void C1FlexGrid1_SelectionChanged(object sender, CellRangeEventArgs e)

    {

    if (Mouse.RightButton == MouseButtonState.Pressed)

    return; // if right button is pressed, probably end-user wants to show context menu or something like this, don't need editing

    if(e.CellRange.ColumnCount == 1 && e.CellRange.RowCount == 1)

    c1FlexGrid1.StartEditing(true); // start editing

    }


    Regards,
    Basant
Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels