2

友だち、私はVisual Studio2005Windowsアプリケーションでdatagridviewコントロールを使用しています。ここに5つの列があります。これらの5つのうち、2番目(colIndex 1)と3番目(colIndex 2)の列にはテキストデータ型があり、4番目(colIndex 3)と5番目(colIndex 4)にはdoubleデータ型の列があります。ここで、colIndex 1および2のセル値の長さをチェックして、入力された値の長さが特定の値(colIndex 1の場合は10、colIndex 2の場合は100)より大きいかどうかを確認する必要がありますか?もしそうなら、私は対応するメッセージを表示する必要があります。入力/入力されたセルの値を確認する必要があるdatagridviewイベントと、値を確認する方法を提案できますか?CellValidatingイベントで次のコードを使用しました

    string columnName = dgView.Columns[e.ColumnIndex].Name;

        if (dgView.Rows[e.RowIndex].Cells[dgViewColumn.TAN].Value.ToString().Length > 10)
        {
            e.Cancel = true;
            MessageBox.Show(columnName + " must be 10 Digits Long!");
        }

ただし、次の列のcolumnNameが表示されています。また、「Enter」キーを押すとフォーカスが次のセルに移動するというグリッドの機能があるため、「プログラムがセル値の変更をコミットまたは終了できないため、操作が成功しませんでした」というエラーが表示されます。CellValidatingイベントで。私を助けてください。

4

1 に答える 1

4

CellValidatingイベントがセルごとにトリガーされることを知っているといいのですが、doubleデータ型列の長さの部分で失敗する可能性があるため、メッセージが表示されている可能性があります。

したがって、最初の列と2番目の列をそれぞれチェックしてから、長さのチェックを実行していることを確認する必要があります。

e.FormattedValueセルの現在の値を取得するために使用することもできます。

またMaxInputLength、プロパティでテキストボックス列のを設定することもできます(必要な場合)

于 2012-03-28T10:03:43.580 に答える