高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

XMLForms

 そういえば、VisualStudio.NETでは作成できなくて、SharpDevelopのみで作成できるものとして、XMLFormsというものがあります。XMLでフォームデザインをしていくというもの。SharpDevelop.jpのフォーラムで質問してみたところ、やっぱり情報は少ないみたいです。SharpDevelop内部用・・・というのが主みたいですね。たしかに、SharpDevelopのディレクトリを探してみると、xfrmのファイルがたくさん見つかります。
SharpDevelopはregion折りたたみルーチンが甘いのか、ちょくちょくinitializeComponentが表示されてしまいます。なので、C#だけで書くとすぐにエディタが重たくなってしまう。それをどうにかできないか?と思ったんですが・・・。
なんとか自作アプリで使用する方法はないものか?探してみました。


英語のサイトで、使用例が見つかりました。
404 Unknown page Using+the+SharpDevelop+IDE+and+XmlForms
Boo言語という、どうやらオリジナルの言語みたいですが、大体察しはつきます。わたしも試してみましたが、普通のフォームのように表示することができました。

  System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
  this.SetupFromXmlStream(asm.GetManifestResourceStream("MainForm.xfrm"));


 でも、やっぱりイベントハンドラはコードで設定しなくちゃいけないんですよねえ、メニューがあるメインフォームなどでは特に大変です。
DelphiのActionListみたいなコンポーネントがあって、それがXMLFormsと実コードの橋渡しをしてくれる・・・みたいな仕組みがあれば何とかできそうですが。