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. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Menus

Thread ID:

Created:

Updated:

Platform:

Replies:

19648 Sep 30,2004 04:22 PM UTC Sep 30,2004 09:00 PM UTC WinForms 9
loading
Tags: GridControl
Madhavi Balusu
Asked On September 30, 2004 04:22 PM UTC

Hi, I am using Grid Validating event to save/discard changes to my grid.EnableEdit=false; for my grid. The problem is I am able to get away with this Validating event for almost all the cases to save/discard chnages except for when the user clicks on the menus. Is there an event for such a case to make my grid validate itself... Thanks!

Administrator [Syncfusion]
Replied On September 30, 2004 04:40 PM UTC

In your menu handlers, you can call the form''s Validate method to force the last active control to validate itself.

Madhavi Balusu
Replied On September 30, 2004 06:52 PM UTC

Yes, that works. But if the grid validation fails during the menu selection/validation, I want to take the user back to the grid ( and kind of force the user to enter the right values ) and not execute the rest of the menu handler.. In my grid''s validation, I do set e.Cancel = true; and I tried to check this.Validate == false to bail in the menu handler, but that did not seem to work..So the question is how do I communicate to the caller ( Validate() in menu handler ) that the last active control''s Validation has failed? thanks!

Administrator [Syncfusion]
Replied On September 30, 2004 07:14 PM UTC

Are you using CurrentCellValidating to do your validaing in the grid? The code below seemed to work for me. CopyPaste_907.zip
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
        If Not Me.Validate() Then
            Me.GridControl1.Focus()
            Return
        End If
        ''do your menu stuff
        MessageBox.Show("Menu stuff")
End Sub

Private Sub GridControl1_CurrentCellValidating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles GridControl1.CurrentCellValidating
        Dim s As String = Me.GridControl1.CurrentCell.Renderer.ControlText
        Dim d As Double
        If Double.TryParse(s, Globalization.NumberStyles.Number, Nothing, d) Then
            If d > 100 Then
                e.Cancel = True
                Me.GridControl1.CurrentCell.ErrorMessage = "must be less than 100"
            End If
        End If
End Sub

Madhavi Balusu
Replied On September 30, 2004 07:59 PM UTC

Hi Clay, That does not help, because: 1) Minor point: I am using c# not VB 2) using Databound grid. 3) not using CurrentCellValidating, instead using grid.validating event ( long story ), which is getting called from this.Validate() in menu handler. Just can''t propagate the validation failed back to menu handler. 4) most importantly, my menu is on 1 form and the grid is on another form. When I set e.Cancel in the grid.Validating event, I want this.validate() in the menu handler on the other form to return false. Thanks!

Administrator [Syncfusion]
Replied On September 30, 2004 08:06 PM UTC

One possible solution is to add a static bool gridOK member to the grid''s form. Handle the grid''s CurrenctCellMoved event and set gridOK = true. In your validate code, set gridOK = false if the validation fails. You should then be able to check this static member in the menu handler on the other form.

Madhavi Balusu
Replied On September 30, 2004 08:20 PM UTC

Yes. But should''nt this.Validate() return false when my grid.Validating() sets e.Cancel = true?

Administrator [Syncfusion]
Replied On September 30, 2004 08:33 PM UTC

Another thought.... Are you calling Form.Validate on the grid''s parent form or on the menu''s parent form?

Madhavi Balusu
Replied On September 30, 2004 08:39 PM UTC

Calling Validate on Menu''s Parent form which in turn calls grid''s validate

Administrator [Syncfusion]
Replied On September 30, 2004 09:00 PM UTC

I cannot get it to work calling the menu''s form''s Validate, but it does seem to work in this sample if I call the grid''s form''s Validate. DataGridTicks_4463.zip

CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

;