2014-09-25 4 views
3

사용자가 셀을 두 번 클릭 한 후 EditMode에 나타나는 문자열/값 (cell.FormattedValue)을 어떻게 변경합니까?VB.net DataGridView change Cell.FormattedValue

e.e. 값이 "5"이고 형식화 된 값이 "5 pcs"이며 유효성 검사시 오류가 발생합니다. 그래서 나는 "5 개"의 사용자에게 나타나는 문자열을 다시 "5"로 바꾸지 않을 것입니다. 그러면 사용자 simpy가 "5"를 쓰고 Enter를 누를 때와 같은 방식으로 작동합니다.

이 FormattedValue가 읽기 전용, 불가능 : 단지 편집 된 문자열 값 변경 부로서

Me.dgwNest1.Rows(e.RowIndex).Cells(e.ColumnIndex).FormattedValue = 5 

Cell.Value가 가능하지 않다.

감사합니다,

+0

, [이 확인을 링크] (http://stackoverflow.com/questions/25761275/datagridview-show-date-or-time-vb-net) –

+0

제안 해 주셔서 감사 드리며 ** CellFormatting ** 이벤트를 테스트했지만이 이벤트는 해고되었습니다. DB에서 데이터를 채우거나 셀에 입력 할 때. 두 번 클릭하면 editingMode에 나타나는 값/문자열과 아무 관계가 없습니다. –

답변

0

리보는 그냥 DataGridView.CellFormatting의 이벤트를 발생 FormattedValueType 속성을 호출 한 후 이벤트 코드에서 셀 스타일을 변경합니다.

FormattedValue는 Value 속성의 포맷 된 표현 일뿐입니다. FormattedValue 표현은 FormattedValueType 특성으로 지정됩니다.

FormattedValueType 속성을 변경하면 값을 변경하지 않고 사용자에게 표시되는 방식이 변경됩니다. =)

은 MSDN에서이 발언은 어떻게 FormattedValue 편집하는 방법을 보여

Value 속성은 셀에 포함 된 실제 데이터 객체 인을의 FormattedValue 반면 이 객체의 형식의 표현입니다 . ValueType 및 FormattedValueType 속성은 각각 에 해당하는 값의 데이터 형식에 해당합니다.

이 속성의 값을 가져 오는 것은 GetFormattedValue 메서드 을 호출하여 셀 값을 FormattedValueType 속성으로 표시된 유형의 동등한 표시 값으로 변환합니다. 그러면 DataGridView.CellFormatting 이벤트가 발생하며이 이벤트를 처리하여 값 변환을 사용자 지정할 수 있습니다.

는 대한 MSDN의 발언을 참조 DataGridViewCell.FormattedValue 재산권 here.

CellFormatting 이벤트는이 같은 것을 할 수있는 발생하는 경우 :

나는 비슷한 문제가 있었다
Private Sub dgvMyData_CellFormatting(sender As System.Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgvMyData.CellFormatting 
    Dim MyStyle As New System.Windows.Forms.DataGridViewCellStyle 

    MyStyle.Format = "00 ct" 
    'or to remove the formatting: 
    MyStyle.Format = "00" 

    e.CellStyle = MyStyle 
End Sub 
+0

나는 그것을 얻지 않거나 저를 위해 작동하지 않는다. FormattedValueType은 ReadOnly이기 때문에 BeginEdit에서 서식을 해제하고 EndEdit에서 다시 설정해도 작동하지 않습니다. 나는이 주제에 대해 Google에서 아무 것도 찾을 수 없기 때문에 단위를 측정하는 열을 형식화하는 사람이 많지 않다고 생각합니다. –

+0

나는 내 대답을 확장했습니다.CellFormatting 이벤트를 처리하는 값을 가져야합니다. 도움이되기를 바랍니다! =) – Hawkeye