문제

Visual Studio와 SharpDevelop은 모두 같은 방식으로 이벤트를 처리 할 대표를 설정하지 않습니다. 그들이 설정하는 방식은 조금 다릅니다. 이로 인해 한 곳에서 대를 사용하고 다른 프로젝트에서 #Develop을 사용하기가 어렵습니다 (동일한 프로젝트).

예를 들어 VB에서 Visual Studio는 다음을 수행합니다.

Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
    Me.DialogResult = System.Windows.Forms.DialogResult.OK
    Me.Close()
End Sub

그리고 ...

Friend WithEvents OK_Button As System.Windows.Forms.Button

따라서 컨트롤이 다른 범위 (이 게시물의 주제 일 수도 있고이 게시물의 주제 일 수도 있음)뿐만 아니라 컨트롤이 선언되도록합니다. 그런 다음 이벤트 핸들러가 Handles 절로 할당됩니다.

#Develop에서는 이렇게 이루어집니다 ...

Sub OK_ButtonClick(sender As Object, e As EventArgs)

End Sub

그리고 ...

Private button1 As System.Windows.Forms.Button

그런 다음 InitializeComponent 메소드에서

AddHandler Me.button1.Click, AddressOf Me.OK_ButtonClick

이것에 대해 가장 성가신 일은 그것이 한 방향으로 이루어 지더라도 다른 IDE는 그것을 다시 복제하고 중복 선언을하고 물론 시간 오류를 컴파일한다는 것입니다.

누구 든지이 주위의 방법, 기본 핸들러를 사용자 정의하는 방법을 알고 있습니까? 그것이 꺼질 수있는 방법 일지라도 수동으로 입력 할 수 있습니까?

도움이 되었습니까?

해결책

.designer에서 꺼내어 코드의 생성자에서 수동으로 배선하십시오. .designer는 사용하는 모든 도구의 디자이너에 의해 재생됩니다.

다른 팁

SharpDevelop은 LGPL 라이센스에 따라 릴리스되므로 언제든지 소스를 얻고 원하는 변경을 할 수 있습니다.

원하는 변경의 경우 vbnetDesignergenerator 클래스에서 insertComponentEvent 및 CreateEteeVenthandler 메소드를 변경하거나 무시해야 할 수도 있습니다. FormsDesigner 프로젝트에 있습니다.

소스를 얻을 수 있습니다 여기.

나는 일반적으로 "이 프로젝트는 오픈 소스이며 코드베이스를 직접 수정"이라고 말하는 사람들과 동의하는 사람은 아니지만, 이것은 유효한 답변이 될 수있는 경우입니다.

#Develop이 수행하는 방식으로 일을하는 이유는 C #이 이벤트 처리기를 추가하는 방법의 직접적인 포트이기 때문입니다.

AddHandler Me.button1.Click, AddressOf Me.OK_ButtonClick

단지 다음의 직접적인 번역 일뿐입니다.

this.button1.Click += new EventHandler(OK_ButtonClick);

C #을 사용하고 있다면 Visual Studio와 #Develop은 모두 동일한 방식으로 코드의 이벤트 생성을 처리합니다.

분명히, #Develop의 일반적인 시각적 기본 usecase에 참석하는 사람은 아무도 없으며, 위에서 말했듯이, 이것은 코드를 직접 조정해야하거나 #Develop 소스에 다시 기여해야 할 프린지 사례 중 하나입니다. 이 특별한 경우.

Visual Basic에 #Develop을 사용하는 다른 모든 사람들이 감사 할 것이라고 확신합니다.

이것은 가장 실용적인 제안은 아니지만, 그것이 당신을 위해 일을 끝낼 것이라고 약속합니다.

#Develop은 오픈 소스입니다. 따라서 이론적으로 Code Base를 Visual Studio.net과 동일한 동작으로 수정할 수 있습니다 ... 이것이 얼마나 관련 될지 잘 모르겠지만 내 아이디어를 공유 할 것이라고 생각했습니다 ...

변화를 스스로 만들기위한 대안으로, 당신은 핵심 팀에 기능 요청으로 연락 할 수 있습니다. 아마도 기부금이 도움이 될 것입니다 ... 다른 사람들 도이 변화에 관심이있을 수 있습니다.

안부, Frank V.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top