We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

inserting CR when user types ALT-ENTER

Similar to Excel, when a user is editing a cell in a GGC, how can I get the ALT-ENTER keystroke combination to insert a carriage return? thanks! Eric

6 Replies

ST stanleyj Syncfusion Team January 11, 2006 08:19 AM UTC

Hi Eric, You need to have a custom engine that supports saving row heights. The custom engine allows resizing of rows independent to know more on that refer the sample in :\Program Files\Syncfusion\Essential Studio\4.1.0.10\windows\Grid.Grouping.Windows\Samples\ResizableRows. The custom engine should be added this way in the form''s ctor before InitializeComponent call. GridEngineFactory.Factory = new GroupingEngineFactory(); Then using TableControlCurrentCellActivated and QueryCellStyleInfo setting these properties mentioned in the code snippet below you can use Enter key to create a new line within a cell. private void gridGroupingControl1_TableControlCurrentCellActivated(object sender, GridTableControlEventArgs e) { e.TableControl.AllowTextBoxAutoSize = true; e.TableControl.WantEnterKey = false; } private void gridGroupingControl1_QueryCellStyleInfo(object sender, Syncfusion.Windows.Forms.Grid.Grouping.GridTableCellStyleInfoEventArgs e) { e.Style.AutoSize = true; e.Style.AllowEnter = true; } Best regards, Stanley


EW Eric Weber January 11, 2006 05:19 PM UTC

Thanks for the advice Stanley. My grid is already using syncfusion''s custom row height engine, and I have already experimented with WantEnterKey and AllowEnter. Here''s what I''ve noticed so far, and why I asked the question... In my editable GGC (without doing any special coding) if I am editing a cell and then press the ENTER key, the cell editing ends. This is great...just like Excel...so far so good. If I implement WantEnterKey and AllowEnter, then, as you said, I''ll be able to enter blank lines into the cell when I press the ENTER key. But then how does the user end their cell editing session (w/o touching the mouse)? Just like with Excel, I want ALT-ENTER to add blank lines to a cell, not ENTER. ENTER should be used for ending cell editing. Thanks! eric


ST stanleyj Syncfusion Team January 12, 2006 04:52 PM UTC

Hi Eric, It is not that necessary to use a mouse interaction to come out of the cell. Tab, Shift+Tab or the arrow keys also helps in navigating and there by ends the editing. I will also update this thread if a sample could be made working with Alt+Enter. Regards, Stanley


ST stanleyj Syncfusion Team January 12, 2006 04:52 PM UTC

Hi Eric, It is not that necessary to use a mouse interaction to come out of the cell. Tab, Shift+Tab or the arrow keys also helps in navigating and there by ends the editing. I will also update this thread if a sample could be made working with Alt+Enter. Regards, Stanley


EW Eric Weber January 20, 2006 01:31 AM UTC

Why won''t something like this work? But instead of inserting a "hello", I could enter a new line. private void TableControl_CurrentCellKeyDown(object sender, KeyEventArgs e) { if (e.Alt == true && e.KeyCode == Keys.Enter) { GridCurrentCell cc = this.TableControl.CurrentCell; TextBoxBase tb = ((GridTextBoxCellRenderer)cc.Renderer).TextBox; tb.Text.Insert(0, "hello"); } } And unfortunately this code doesn''t work, why not? What am i missing? Replacing the last line with tb.SelectAll() works just fine. Thanks! eric


ST stanleyj Syncfusion Team January 20, 2006 12:12 PM UTC

Hi Eric, This works for me. this.gridGroupingControl1.TableControlCurrentCellKeyDown += new GridTableControlKeyEventHandler(gridGroupingControl1_TableControlCurrentCellKeyDown); private void gridGroupingControl1_TableControlCurrentCellKeyDown(object sender, Syncfusion.Windows.Forms.Grid.Grouping.GridTableControlKeyEventArgs e) { if((Control.ModifierKeys & Keys.Alt) != 0 && e.Inner.KeyCode == Keys.Enter) { Console.WriteLine("alt+enter"); e.Inner.Handled = true; GridCurrentCell cc = this.gridGroupingControl1.TableControl.GetNestedCurrentCell(); TextBoxBase tb = cc.Renderer.Control as TextBoxBase; if(tb != null) { tb.SelectedText = Environment.NewLine; cc.BeginEdit(); this.gridGroupingControl1.TableModel.RowHeights[cc.RowIndex] += 17; } } } Here is a sample. Best regards, Stanley

Loader.
Live Chat Icon For mobile
Up arrow icon