программа не получает доступ к ValidatingEditor и InvalidValueException

Я использую DevExpress DataGrid Я заполняюсь, это от выделяется.. Если пользователь сохраняет имя поля пустым, я должен дать ему сообщение об ошибке.. этот мой код:

using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid.Views.Grid;

string FirstName = "First Name";
string FatherName = "Father Name";
string LastName = "Last Name";
private void simpleButton1_Click(object sender, System.EventArgs e)
    {
        try
        {
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=C:\\Users\\pc\\Documents\\Emp.xlsx;Extended Properties=\"Excel 12.0;HDR=Yes\"";

            con.Open();
            DataTable dtSchema;
            dtSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            OleDbCommand Command = new OleDbCommand ("select * FROM [" + dtSchema.Rows[0]["TABLE_NAME"].ToString() + "]", con);
            OleDbDataAdapter da = new OleDbDataAdapter(Command);
            DataSet ds = new DataSet ();
            da.Fill(ds);
            dataGrid1.DataSource = ds.Tables[0];
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }   

private void gridView3_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
    {
        GridView view = sender as GridView;
        if(view.FocusedColumn.FieldName == "FirstName") 
        {
            string FirName = (e.Value.ToString());
            if(FirName == null) 
            {
                e.Valid = false;
                e.ErrorText = "Enter a First Name";
            }
        }
    }



private void gridView3_InvalidValueException(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
    {
        //Do not perform any default action 
        e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.NoAction;
        //Show the message with the error text specified 
        MessageBox.Show(e.ErrorText);
    }

Проблема состоит в том, когда я управляю программой.. код не получает доступ к этому коду, и это не показывает ошибку.. Кто-то мог заметить, где моя ошибка? Огромное спасибо

1
nl ja de
Необходимо показать код, где вы соединили ValidatingEditor и InvalidValueException укладчики.
добавлено автор Daniel Kelley, источник
Никакие проблемы. Для этих 2 методов в вашем вопросе, который будет выполнен, необходимо назначить им на ValidatingEditor и InvalidValueException события на DataGrid. Мы должны видеть, как вы делаете это. Вы, возможно, сделали это через проектировщика, или вы, возможно, сделали его непосредственно в коде (возможно, в вашем конструкторе форм).
добавлено автор Daniel Kelley, источник
Где-нибудь в вашем коде у вас должно быть 2 линии как gridView3. InvalidValueException + = gridView3_InvalidValueException и gridView3. ValidatingEditor + = gridView3_ValidatingEditor . Можно ли подтвердить, что это правильно? Можно ли также подтвердить, что вы поместили точку останова в первую линию обоих методов в вашем вопросе и что точки останова не поражены.
добавлено автор Daniel Kelley, источник
Жаль I' m новый в c#.. Я didn' t понимают то, что вы имеете в виду
добавлено автор Nejthe, источник
Я отредактировал свой ответ.. That' s все, что я написал. Я дважды щелкнул на ValidatingEditor и InvalidValueException на событиях в проектировщике, где это открыло код.. Я don' t знают, могло ли бы это помочь Вам найти ошибку.. Я действительно ценю вашу помощь
добавлено автор Nejthe, источник
Эти две линии называют событие InvalidValueException и InvalidValueException? Я имею, Пишут им в simpleButton1_Click? И да точка останова показывает, что все, пишут кроме прохождения в этих двух методах
добавлено автор Nejthe, источник

1 ответы

К сожалению, я не могу ответить на ваш вопрос, учитывая информацию, которую вы предоставили. Однако есть много вещей, которые необходимо исследовать, чтобы выяснить проблему.

Править: добавленный пункт 3.

  1. Check that you have assigned handlers to the InvalidValueException and ValidatingEditor events on gridView3. You have indicated you have done this through the designer, so you should be able to search your code base and verify you can find the following lines:

    gridView3.InvalidValueException += gridView3_InvalidValueException gridView3.ValidatingEditor += gridView3_ValidatingEditor

  2. Put a breakpoint at the top of both methods and verify that the handlers are being called - i.e. you are not just relying on your validation working, as opposed to verifying your handlers are being called.

  3. Read the DevExpress documentation on the ValidatingEditor and InvalidValueException events to make sure you have a correct understanding of how they are triggered.

1
добавлено
Обработчик события Click кнопки не правильное место, чтобы сделать это. I' d предлагают, чтобы вы добавили те линии в конструктора вашей формы.
добавлено автор Daniel Kelley, источник
хорошо теперь я понял вашу мысль.. Я добавил этот код в событии щелчка кнопки: gridView3. ValidatingEditor + = новый DevExpress. XtraEditors. Средства управления. BaseContainerValidateEditorE‌ ​ ventHandler (gridView‌ ​ 3_ValidatingEditor); gridView3. InvalidValueException + = новый InvalidValueExceptionEventHandler (gridView3_InvalidValueExce‌ ​ ption); Но все еще.. Это не получает доступ к методу. Остановка программы, когда конец щелчка кнопки событий
добавлено автор Nejthe, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot