This is a migrated thread and some comments may be shown as answers.

cell edit

1 Answer 210 Views
GridView
This is a migrated thread and some comments may be shown as answers.
AJing
Top achievements
Rank 1
AJing asked on 07 Nov 2011, 09:37 AM
Hi:
      
      1. How to put cell into edit mode and editing cursor to the cell contents after the last character when double-click ?
      2. How to put cell into focus state when cell end-edit?

  We now solve the tow problems as follows:
     1. Using cell double-click event & SenderKeys{"End"} 
     2. Using CellEndEdit event 

The result is:
        Occasionally , the cell which in the edit mode contents are all selected what  is 
not expected.

Greetings!
Looking forword to you!
Ajing
     
  

1 Answer, 1 is accepted

Sort by
0
Stefan
Telerik team
answered on 10 Nov 2011, 09:50 AM
Hello Ajing,

Thank you for writing.

The first time when you double click a cell, if the cell is CurrentCell, the editor will get opened on the first click and the cursor will be placed where you have clicked on the second click. Alternatively, if you click a cell that is not CurrentCell, the first click will make it current and the second will open its editor. So, what we can do is to subscribe to the CellEditorInitialized event and there subscribe to the GotFocus event of text box editor of the desired column. In the GotFocus event handler, you can set the desired position of the caret. However, this will only cover the second case, where you are double clicking a cell which is not current. Handling the first scenario is hard to determine task, since we do not have the exact case, when to move the caret position.
void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e)
{
    if (e.Column.Name == "Name")
    {
        RadTextBoxEditor editor = e.ActiveEditor as RadTextBoxEditor;
        RadTextBoxEditorElement element = editor.EditorElement as RadTextBoxEditorElement;
        element.TextBoxItem.GotFocus -= new EventHandler(TextBoxItem_GotFocus);
        element.TextBoxItem.GotFocus += new EventHandler(TextBoxItem_GotFocus);
        element.TextBoxItem.DoubleClick += new EventHandler(TextBoxItem_DoubleClick);
    }
}
 
void TextBoxItem_GotFocus(object sender, EventArgs e)
{
    RadTextBoxItem item = sender as RadTextBoxItem;
    item.SelectionLength = 0;
    item.SelectionStart = item.Text.Length;
}

Alternatively, the SendKeys approach should work correctly in all cases. And if it is better for you, you can stick with it.

In regards to your second question, you can make a cell current by setting the CurrentRow and CurrentColumn properties of RadGridView:
void radGridView1_CellEndEdit(object sender, GridViewCellEventArgs e)
{
    radGridView1.CurrentRow = radGridView1.Rows[5];
    radGridView1.CurrentColumn = radGridView1.Columns[2];
}

I hope that you find this information helpful. Should you have any other questions, do not hesitate to contact us.
 
Kind regards,
Stefan
the Telerik team

Q2’11 SP1 of RadControls for WinForms is available for download (see what's new); also available is the Q3'11 Roadmap for Telerik Windows Forms controls.

Tags
GridView
Asked by
AJing
Top achievements
Rank 1
Answers by
Stefan
Telerik team
Share this question
or