2016-08-11 9 views
1

私は3列のDataGridView CellValidatingは完全に

ハンド

  • アイテム名

  • 数量を持って働いていない

  • は数量

項目名を転送し、手元にある数量はユーザ に表示されます。彼が数量以上の数を入力しようとすると、彼は手に持っています。私は


イベントは私が欲しい正確な時刻を発射されていませんが、私は

Private Sub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating 

    With DataGridView1.Rows(e.RowIndex) 
       If e.ColumnIndex = 2 Then '' this is the col index for qty to be transfered 
        If .Cells(2).Value > .Cells(1).Value Then 
         MessageBox.Show("You don't Have sufficient quantity ", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
         e.Cancel = True 
        End If 
       End If 
      End With 
end sub 

を試してみましたが、何本...ポップアップ表示するメッセージボックスを必要としています。それは私がメッセージをポップアップせずに行を残すことができます。

答えて

0

値がまだセルに書き込まれ、そのイベントから、あなたに渡される値が使用されていません。

If Convert.ToInt32(e.FormattedValue) > Convert.ToInt32(.Cells(1).Value) Then 

サイドノート:価値とFormattedValueので、あなたのコード内でオプション厳格なオンを設定しますオブジェクトを返します。

+0

エラーはありません、その動作は。先端のおかげで、将来を覚えています。ありがとう。 –