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

Ra

4 Answers 82 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Zerka
Top achievements
Rank 1
Zerka asked on 11 Jan 2011, 01:12 PM

Hi

I want to hide the system context menu which is visible when cell is in edit mode and user presses right button. I come to know that it can be disable on EditingControlShowing event of DataGridView. But as this event is not available in RadGridView, How can I disable or hide this context menu. Any help would be appreciated!

Regards!

4 Answers, 1 is accepted

Sort by
0
Accepted
Richard Slade
Top achievements
Rank 2
answered on 11 Jan 2011, 03:31 PM
Hello Michael,

In order to do this, you could create a custom cell for the editor. Here is a very basic example
Public Class TextEditor
    Inherits BaseGridEditor
    Private radTextBox As RadTextBox
  
    Public Sub New()
        radTextBox = New RadTextBox()
        radTextBox.TextBoxElement.TextBoxItem.HostedControl.ContextMenu = New ContextMenu()
        radTextBox.TextBoxElement.TextBoxItem.SelectionStart = 0
    End Sub
  
    Private Sub radTextBox_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
        OnValueChanged()
    End Sub
  
    Protected Overrides Function CreateEditorElement() As RadElement
        Return New RadHostItem(radTextBox)
    End Function
  
    Public Overrides Property Value() As Object
        Get
            Return radTextBox.Text
        End Get
        Set(ByVal value As Object)
            radTextBox.Text = value.ToString()
        End Set
    End Property
End Class
  
Public Class MyTextEditorElement
    Inherits RadTextBoxElement
  
    Public Sub New()
        Me.CanFocus = True
    End Sub
    Protected Overrides ReadOnly Property ThemeEffectiveType() As Type
        Get
            Return GetType(RadTextBoxElement)
        End Get
    End Property
    Protected Overrides Sub OnPropertyChanged(ByVal e As RadPropertyChangedEventArgs)
        MyBase.OnPropertyChanged(e)
    End Sub
End Class

and then handle the EditorRequired event
Private Sub RadGridView1_EditorRequired(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.EditorRequiredEventArgs) Handles RadGridView1.EditorRequired
    If e.EditorType Is GetType(RadTextBoxEditor) Then
        e.EditorType = GetType(TextEditor)
    End If
End Sub

for more information on Custom Cells, please take a look at this documentation
hope that helps
Richard
0
Richard Slade
Top achievements
Rank 2
answered on 12 Jan 2011, 04:09 PM
Hello,

Did this help? If so please remember to mark as answer. If you need more assistance, please let me know.
Thanks
Richard
0
Zerka
Top achievements
Rank 1
answered on 09 Mar 2011, 10:51 AM
Hello Richard

Sorry, I had been busy with some other high priority tasks. Yes It works. But in this way, I will lose some other features of RadTextBox. Also I have differnet kind of columns in my grid and hence different editors, so this requires a lot of code just for hiding this default system context menu.

Thanks 

Regards  
0
Martin Vasilev
Telerik team
answered on 11 Mar 2011, 05:29 PM
Hi Michael,

I just would like to suggest another idea to remove the default context menu, which could match your scenario better. You can do that by accessing the TextBox item in the standard RadTextBoxEditor. Please consider the following code as example:
void radGridView1_CellBeginEdit(object sender, GridViewCellCancelEventArgs e)
{
    RadTextBoxEditor editor = e.ActiveEditor as RadTextBoxEditor;
    if (editor != null)
    {
        RadTextBoxEditorElement editorElement = (RadTextBoxEditorElement)editor.EditorElement;
        (editorElement.HostedControl as TextBox).ContextMenu = new ContextMenu();
    }
}

I hope this helps. Let me know if you have any additional questions.

Best wishes,
Martin Vasilev
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
Tags
GridView
Asked by
Zerka
Top achievements
Rank 1
Answers by
Richard Slade
Top achievements
Rank 2
Zerka
Top achievements
Rank 1
Martin Vasilev
Telerik team
Share this question
or