1

私はDevExpress DataGridを使用しています.Excelから入力しています..ユーザーがフィールド名を空のままにしておくと、彼にエラーメッセージを与える必要があります..これは私のコードです:

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);
    }

問題は、プログラムを実行したときです.コードがこのコードにアクセスせず、エラーが表示されません.誰かが私のせいに気付くことができますか? どうもありがとう

4

1 に答える 1

1

残念ながら、ご提供いただいた情報ではご質問にお答えすることができません。ただし、問題を解決するために調査する必要があることがいくつかあります。

編集:ポイント3を追加。

  1. InvalidValueExceptionのおよびValidatingEditorイベントにハンドラが割り当てられていることを確認しますgridView3。デザイナーを通じてこれを行ったことを示しているので、コード ベースを検索して、次の行が見つかることを確認できるはずです。

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

  2. 両方のメソッドの先頭にブレークポイントを配置し、ハンドラーが呼び出されていることを確認します。つまり、ハンドラーが呼び出されていることを確認するのではなく、検証が機能しているだけに依存していません。

  3. ValidatingEditorおよびInvalidValueExceptionイベントに関する DevExpress ドキュメントを読んで、それらがどのようにトリガーされるかを正しく理解してください。

于 2013-01-29T09:32:44.423 に答える