2016-05-13 2 views
0

Я пытаюсь обрабатывать данные ячейки datagridview (определенного столбца) для оценки ввода пользователя во-первых для числового значения, а затем для значений в диапазоне от 0 до 90 ... Этот код работает почти то же самое для ситуации с текстовым полем, но когда я пытаюсь применить его к ситуации с ячейкой datagridview, все пропустит ... как я могу это исправить?Оценка стоимости ячейки Datagridview vb.net

Private Sub DataGridView1_EditingControlShowing1(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing 
    If DataGridView1.CurrentCell.ColumnIndex = 1 Then 
     Dim txtedit As TextBox = DirectCast(e.Control, TextBox) 
     AddHandler txtedit.KeyPress, AddressOf txtEdit_KeyPress 
    End If 
End Sub 

    Private Sub txtEdit_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) 

    If IsNumeric(DataGridView1.CurrentCell.Value) Then 
     'VALIDATES CURRENT CELL INPUT TO VALUES RANGING BETWEEN 1 AND 90°... 
     If DataGridView1.CurrentCell.Value <= 0 Or DataGridView1.CurrentCell.Value >= 91 Then 
      MessageBox.Show("The angle you are trying to achieve is " & DataGridView1.CurrentCell.Value & "°." & vbCrLf & vbCrLf & "Only values ranging from 1° to 90° are permitted.", "Attention!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) 
     Else 
      'NOTHING 
     End If 
    Else 
     MessageBox.Show("Only numeric values are permitted.", "Attention!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) 
    End If 
End Sub 

ответ

0

Вы можете Генделя DataGridView1_CellEndEdit:

Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit 

     Try 
      Dim order As DataGridView = DirectCast(sender, DataGridView) 

      If IsNumeric(order("NmeOfColumn", e.RowIndex).Value) Then 

       If order("NmeOfColumn", e.RowIndex).Value <= 0 Or order("NmeOfColumn", e.RowIndex).Value >= 91 Then 
        MessageBox.Show("The angle you are trying to achieve is " & DataGridView1.CurrentCell.Value & "°." & vbCrLf & vbCrLf & "Only values ranging from 1° to 90° are permitted.", "Attention!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) 
       Else 
        'NOTHING 
       End If 
      Else 
       MessageBox.Show("Only numeric values are permitted.", "Attention!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) 
      End If 


     Catch ex As Exception 

     End Try 
    End Sub 
+0

спасибо Вот у меня в правильном направлении :) – TM80

+0

с удовольствием :) –