#Develop対のVisual Studio - デフォルトイベントハンドラ
-
05-09-2019 - |
質問
Visual StudioとSharpDevelopのは、どちらも同じようにイベントを処理するデリゲートを設定しないでください。彼らは設定されている方法は少し異なっています。これは難しい(同じプロジェクト上の)別では1位と#DevelopにVSを使用できるようになります。
は、例えば、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
コントロールは異なるスコープ(これは、この記事の話題も問題ではなく、することはできません)ではなくWITHEVENTSだけではなく、宣言されるようになっています。イベントハンドラは、その後、ハンドル句によってそれに割り当てられています。
#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
これについて最も厄介なものを、それを1つの方法で行われても、他のIDEが重複した宣言を持つ、それをやり直します、そしてもちろん、時間のコンパイルエラーです。
誰もが、これを回避する方法のデフォルトハンドラをカスタマイズするためにいくつかの方法を知っていますか?それは、彼らがオフにできることはいくつかの方法で、そうしても、それは単に手動で入力することができますか?
解決
.designerからそれらを取り、背後にあるコードではコンストラクタで手動でそれらをつなぎ合わせます。 .designerが使用するどんなツールのデザイナーによって再生される。
他のヒント
SharpDevelopのは、LGPLライセンスの下でリリースされたので、あなたは常にソースを取得し、必要な変更を加えることができます。
必要な変更のために、あなたはVBNetDesignerGeneratorクラスのInsertComponentEventとCreateEventHandler方法を変更したり、上書きする必要があるかもしれません。それはFormsDesignerプロジェクトであります。
あなたがソースを得ることができますここを。
、これは有効な回答であるかもしれない一つのケースです。
#developが、それはC#はイベントハンドラを追加する方法の直接のポートだから、それはそれをやっている方法があることをやっている理由の理由、例えば、
AddHandler Me.button1.Click, AddressOf Me.OK_ButtonClick
は、単にの直接翻訳したものです
this.button1.Click += new EventHandler(OK_ButtonClick);
あなたは、C#を使用していた場合は、、Visual Studioと#Developの両方をコードで正確に同じようにイベント作成を処理します。
もちろん、誰もが#Developに共通のVisual Basicのユースケースに参加していない、と私は上記の言ったように、これはあなただけのコードを自分で微調整する必要がある場合があります、または多分バックに貢献あるものフリンジ例1でありますこの特定のケースのための#Develop源
私は、Visual Basicのため#Developを使用しています誰もがそれを感謝確信してます。
これは、最も実用的な提案であることを行っていないが、私はそれがあなたのために仕事を取得したいことをお約束します。
#Developはオープンソースです。だから、理論的にはあなたが私はこれがあるかもしれないどのように関わっわからないんだけど...ビジュアルStudio.netと同じ動作にコードベースを変更することができますが、私は、私は私のアイデアを共有したいと思った...
あなたの自己変更を行う代わりに、あなたは、機能要求として、この程度コアチームに連絡することがあります。おそらく、寄付は役立つだろう...他にもこの変更に興味があるかもしれません。
よろしく、 フランク・Vます。