Hi,
How can I disable Shortcuk Keys (ALT+Z) in GDBG.
I set
this.Model.CommandStack.Enabled = false;
but wheen I press ALT+Z redo i generated.
Best regards,
MS
AD
Administrator
Syncfusion Team
August 3, 2006 07:02 PM UTC
Try handling the CurrentCellKeyDown event to see if that does what you need.
void gridDataBoundGrid1_CurrentCellKeyDown(object sender, KeyEventArgs e)
{
if((e.Alt && e.KeyCode == Keys.Z)
|| (e.Control && e.KeyCode == Keys.Z))
{
e.Handled = true;
}
}
MS
Marek Solarski
August 3, 2006 10:23 PM UTC
Hi,
Thank you for your answer.
I forgot to add that in my country RIGHT ALT + Z is a combination for a special character. I''d like this combination to put this special character in grida and not to generate undo/redo commands.
Regards,
MS
AD
Administrator
Syncfusion Team
August 4, 2006 09:09 AM UTC
Hi Marek,
You can handle the CurrentCellKeyDown event and try to put the special character there itself. Try the code below.
void gridDataBoundGrid1_CurrentCellKeyDown(object sender, KeyEventArgs e)
{
GridCurrentCell cc = this.gridDataBoundGrid1.CurrentCell;
if((e.Alt && e.KeyCode == Keys.Z) || (e.Control && e.KeyCode == Keys.Z))
{
string str = cc.Renderer.ControlText;
cc.Renderer.ControlText = str + "spl-char";
e.Handled = true;
}
}
Let us know if this helps.
Thanks,
Rajagopal
MS
Marek Solarski
August 4, 2006 01:58 PM UTC
Hi,
I tried your code.
cc.Renderer.ControlText is correct and contains special character.
But GDBG seems to catch the undo command anyway (although I set e.Handled = true) and any of my changes to cell value is being undone (rolled back by undo command) :(
Regards,
ms
MS
Marek Solarski
August 4, 2006 02:00 PM UTC
PS
Maybe I should handle
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {}
But I can''t figure out how to check whether ALT+Z was pressed.
AD
Administrator
Syncfusion Team
August 7, 2006 06:12 AM UTC
Hi Marek,
Please try the below piece of code.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if(this.gridDataBoundGrid1.CurrentCell != null)
{
if((Control.ModifierKeys & Keys.Alt) != 0)
{
if ((keyData & Keys.Z) == Keys.Z)
{
Console.WriteLine("Hello");
return true;
}
}
}
return base.ProcessCmdKey (ref msg, keyData);
}
Let me know if you need any further assistance.
Thanks,
Rajagopal
AD
Administrator
Syncfusion Team
August 7, 2006 09:07 AM UTC
Hi,
Thank you - it works! However cell contents becames highlighted.
Could you please tell me how to make grid not to highlight the cell contents after I press ALT+Z
I replaced your line:
Console.WriteLine("Hello");
with
GDBD.CurrentCell.Renderer.ControlText += "spec-ch";
Regards,
Marek
AD
Administrator
Syncfusion Team
August 7, 2006 09:31 AM UTC
Hi Marek,
Try adding the code below, this will help you.
///
this.gridDataBoundGrid1.CurrentCell.Renderer.ControlText += "spec-ch";
GridTextBoxCellRenderer tr = this.gridDataBoundGrid1.CurrentCell.Renderer as GridTextBoxCellRenderer;
tr.TextBox.SelectionStart = this.gridDataBoundGrid1.CurrentCell.Renderer.ControlText.Length;
tr.TextBox.SelectionLength = 0;
////
Regards,
Rajagopal
AD
Administrator
Syncfusion Team
August 7, 2006 11:33 AM UTC
Thank you, it works!