2017-02-01 9 views
0

유효하지 않습니다하는 MessageBox 가져 표시되고 해당 셀의 텍스트/값이 지워지고 빈 셀이 다시 남습니다.일반 텍스트 데이터 내가 하나 개의 셀에 내 <code>UltraGrid</code>, 이에 사용자 유형의 경우 값에 약간의 유효성 검사를 추가하기 위해 노력하고있어,하지만 <code>CheckBoxColumn</code><code>True</code>의 값을 설정하지 않은

는 내가 지금까지있는 것은 :

Try 
    If e.Cell.Column.Key = "Commission_Rate" Then 
     If e.Cell.Row.Cells("Commission_Override").Value = False Then 
      MessageBox.Show("Before entering a custom rate, please set 'Commission Override' to True", "Override Commission", MessageBoxButtons.OK) 
      e.Cell.Value = "" 
     End If 
    End If 
Catch 
End Try 

MessageBox 다만, 라인을 잘 작동, 다른 하나는 다음 변환에서

"수 없습니다라고 표시됩니다 시스템에 선택 System.String. 십진수 "

셀은 통화 값을 입력하기 때문에 십진수 셀입니다. 따라서의 값을" "로 설정합니까??

+0

이러한 열은 일반적으로 입력됩니다. 이 경우 매핑되는 db 컬럼은 숫자 (십진수)를 필요로하므로 "0"또는 일부 필요합니다. 또한 어떤 비율로든 DGV는 RowValidation을 제공합니다. 그 곳은 어디입니까? – Plutonix

+0

@Plutonix 그리드가로드되면 아무것도 표시되지 않습니다. 입력 된 문자를 삭제할 수있는 방법이 없습니까? – David

+0

_e.Cell.Value = Nothing_ – Steve

답변

1

값이 제공되지 않을 때 데이터베이스에서 가져 오는 값은 DBNull.Value입니다. 당신은 아무것도 보여주지하는 셀을 필요로하는 경우 그래서 당신은 다음과 같은 값을 설정해야합니다

e.Cell.Value = DBNull.Value 

이것은 빈 셀을 표시하는 격자를 강제

[편집] 사용 BeforeEnterEditMode 이벤트에서이 코드 관련 확인란 셀을 선택하지 않은 경우 사용자가 셀을 편집하지 못하도록합니다.

Private Sub UltraGrid1_BeforeEnterEditMode(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles UltraGrid1.BeforeEnterEditMode 
    Dim cell As UltraGridCell = Me.UltraGrid1.ActiveCell 
    If cell Is Nothing Then 
     Return 
    End If 
    Try 
     If cell.Column.Key = "Commission_Rate" Then 
      If cell.Row.Cells("Commission_Override").Value = False Then 
       MessageBox.Show("Before entering a custom rate, please set 'Commission Override' to True", "Override Commission", MessageBoxButtons.OK) 
       e.Cancel = True 
      End If 
     End If 
    Catch 
    End Try 
End Sub 
+0

거의 작동합니다 ... 그것은'MessageBox'를 반환하고, 'OK'를 누르면 그리드의 다른 셀을 편집 할 때까지 입력 된 값이 셀에 남아 있습니다. – David

+0

"이 거의 일"이 무슨 뜻인지 확실하지 않습니다. 셀의 값을 DBNull.Value로 설정하면 필요한만큼 셀에 아무 것도 표시되지 않습니다. 그러나이 코드를 어떤 이벤트에서 호출하는지 확신 할 수 없습니다. 컨텍스트에 대한 좀 더 많은 정보를 공유한다면 우리는 해결책을 줄 수 있습니다 :) – wnvko

+0

안녕하세요,이 코드는 문제가있는 곳에있는 'CellChange' 이벤트에 있습니까? 'BeforeRowUpdate' /'AfterRowUpdate'에 있어야합니까? – David