두 개의 윈도우 폼이있는 가정용 폼에 울트라 그리드가있는 프로젝트를 사용 중입니다. 다른 데이터는 _dd 데이터로 표시됩니다. 데이터 형식 추가이 닫혀있을 때 ultragrid를 새로 고침하고 싶지만 현재 그렇게 할 수 없습니다.공유 서브 루틴 및 값 파싱
나는 나를 데이터를로드 홈 형태의 서브 루틴을 사용하여 ShowDialog.OK
가치를 얻을 수 있도록 추가 데이터 양식을 form_closing
서브 루틴 Public Shared Sub
을해야, 그래서 새로 고침 여부를 알고있다. 그러나 공유 하위이므로 Me.Dispose
을 사용할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까?
Private Sub fHome_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' This is where the UltraGrid gets it's data from
If fAdd.ShowDialog() = DialogResult.OK Then
uwgDisplay.DataSource = Nothing
displayData()
' addData form is open, then get the data from the database (dont refresh it)
Else
displayData()
' if add data form is closed, then refresh the data
End If
Me.Location = New Point(0, 0)
End Sub
이
는 인스턴스 메서드 내에서만 유효 양식 닫는 추가 양식 하위 나는나
에게하고 모두Me.Dispose()
라인에Public Shared Sub Form_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If Globals.savedValue = False Then Dim closeBox As MsgBoxResult closeBox = MsgBox("Exit without saving?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Confirm") If closeBox = MsgBoxResult.Yes Then Me.Dispose() ElseIf closeBox = MsgBoxResult.No Then e.Cancel = True Exit Sub End If Else Me.Dispose() End If End Sub
입니다
그래서, 요약하기에 DialogResult를 얻을 공유 당신은 무엇을 당신이 필요로하는 Form_FormClosing''ShowDialog' 기능 '의 값을 (사용하는'fHome_Load' 서브 루틴이다, 할 필요가 없습니다하는 당신을 아직 덧붙여지지 않았다.)하지만 공개 공유 서브 (public Shared Sub)를 만드는 것으로 그것을 할 수 없다는 것을 의미한다. – David
@David 예, 맞습니다. –
@MattWilko fAdd.ShowDialog() = DialogResult.OK'를 공유 하위가 없으면 사용하려고했을 때 '비공유 멤버에 대한 참조는 객체 참조가 필요합니다. ' –