및 CellFormatting
처리기를 프로젝트에 추가하려고합니다. CellFormatting
처리기에서 모든 오류를 해결 한 것 같지만 내 RowsAdded
은 알아낼 수없는 오류가 있습니다. 의 '를 rowCount' '공공 하위 뉴 (정수로 rowIndex에 정수로, rowCount의)'매개 변수에 지정되지DataGridViewRowsAdded 핸들러에서 오류가 발생합니다.
인수는
는 '정수''AddressOf를'표현은 '정수'로 변환 할 수 있습니다 때문에 아닌 대리자 형식
내 코드 :
Private Sub InitializeDataGridView()
Try
' Set up the DataGridView.
With Me.DataGridView1
' Automatically generate the DataGridView columns.
.AutoGenerateColumns = True
' Set up the data source.
.DataSource = dt
' Automatically resize the visible rows.
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
' Set the DataGridView control's border.
.BorderStyle = BorderStyle.Fixed3D
' Put the cells in edit mode when user enters them.
.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2
' Disables Add New Row
.AllowUserToAddRows = False
'.AllowUserToOrderColumns = False
For Each column As DataGridViewColumn In DataGridView1.Columns
column.SortMode = _
DataGridViewColumnSortMode.Programmatic
Next
AddHandler Me.DataGridView1.CellFormatting, New DataGridViewCellFormattingEventHandler(AddressOf OnCellFormatting)
AddHandler Me.DataGridView1.RowsAdded, New DataGridViewRowsAddedEventArgs(AddressOf OnRowsAdded)
End With
Catch ex As SqlException
MessageBox.Show(ex.ToString, _
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
System.Threading.Thread.CurrentThread.Abort()
End Try
End Sub
그리고
Private Sub OnCellFormatting(ByVal sender As Object, ByVal e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
'If e.ColumnIndex = DataGridView1.Columns("Contact").Index Then
' e.FormattingApplied = True
' Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
' e.Value = String.Format("{0} : {1}", row.Cells("ContactName").Value, row.Cells("Phone").Value)
'End If
End Sub
Private Sub OnRowsAdded(ByVal sender As Object, ByVal e As DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded
'For i As Integer = 0 To e.RowIndex - 1
' Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex + i)
' row.Cells("Contact").Value = String.Format("{0} : {1}", row.Cells("ContactName").Value, row.Cells("Phone").Value)
'Next
End Sub
오류에 관해서라면, 나는 어디에서나 rowCount를 사용하지 않을 것입니다.
정수를 대리자 형식으로 사용한다고 생각하는 이유는 무엇입니까?
체크해 봤지만 public 변수 rowCount 또는 rowIndex가 없습니다.
대답에 따라 내 오류를 수정하는 것으로 보이는 Sub InitializeDataGridView()에서 두 줄을 삭제했습니다. 그러나 대답은 Args가 Handler 여야한다고 명시합니다. 그래서 Private Sub OnRowsAdded를
으로 변경했습니다.어떤 오류가 발생 했나요? 왜 그것이 오류를 일으키는가?
나는 두 불필요한 행을 삭제하고이를 수정되었습니다 :이 두 줄을 마지막으로 불필요 (는 정정)! 사적인 subrowsadded는 여전히 Handler 대신에 Args를 필요로하거나 더 많은 에러가 발생합니다. 설명 할 수 있습니까? – ZL1Corvette
@ ZL1Corvette 내가 당신의 질문을 이해하지 않는 한, 대답은 내 대답의 첫 부분에 있습니다 (Typo Args 대 Handler). – Chris
Sub OnRowAdded에서 Args를 Handler로 변경하고 오류가 발생했습니다. 원본 게시물의 세부 정보. – ZL1Corvette