3. 簡単なアプリの作成
"Start a New Solution" すると、こんなウィドウが開く。
C# -> Gtk# 2.0 プロジェクト
を選択して、適当な名前を入力して進む。
なんか出てきた。
とりあえず、"Gtk# サポート" にでもチェック入れておくか・・・。 (適当
ちなみに、Gtk# とは、Mono で作ったアプリにフォームとかの GUI を実装するためのあれ。
要するに、Windows.Forms 的なものだ。
もちろん、Windows.Forms の互換機能もあるが、こっちが標準。
おー、来たきた。
で、実行してみるんだけど・・・。
エラー:
[Task:File=/home/Hirotaka/Hello mono/Hello mono/MainWindow.cs, Line=13, Column=17, Type=Error, Priority=Normal, Description=The name `Build' does not exist in the current context(CS0103)]
え~、なんで?
何もしてないのに動かないとか、ちょっと困るんだけど。
ちょっといじくっていたら、手っ取り早い解決方法を発見。
左のビューリストから、プロジェクト名を右クリック。
追加 -> 新しいダイアログ
を開いて、適当な名前を付けて [新規] を押す。
新しいダイアログが作成されたわけだが、とりあえずこれは利用するわけでもないのでそのまま放置。
左がわのビューリストを見てほしい。
"gtk-gui" となっていたフォルダが、"ユーザーインターフェース" になったのがわかるだろうか。
なぜかはわからない、けどこれでつかえるっぽい。
試しに実行してみる。
キター!
とりあえず、フォームだけ表示させることができた。
これでも満足なのだが、とりあえず何かできるぐらいのアプリは作ってみよう。
4. GUI ビルダーを使ってみる
ユーザーインターフェース -> MainWindow
を開いてみよう。
上のような、GUI ビルダーが開く。
Visual Studio を使っている人なら、なんとなくで操作できるはずだ。
ちょっと違うことは、最初のウィンドウにそのままボタンなどを配置しようとしても、できない。
コンテナを配置する必要がある。
通常の、Visual Studio みたいに操作いたいのであれば
Toolbox -> コンテナ -> Fixed
をドラッグしてあげればよい。
ウィンドウが、透明から白く?なるはずだ。
その上から、ボタンを配置してみよう。
Toolbox -> ウィジェット -> Button
を、フォームにドラッグする。
なぜか、1つめのボタンなのに button9 となったのは気にしない・・・。
Visual Studio でいう、プロパティの設定は、プロパティから行うのだがちょっと使い勝手が違う。
たとえば、ボタンのテキストを変えてみよう。
ボタンを選択してから、
プロパティ -> プロパティ -> Button Properties -> ラベル
からできる。
上記の例では、"button9" から "Hello!" に変更している。
イベントの設定も、また Visual Studio とは勝手が違う。
Visual Studio であれば、ボタンをダブルクリックしてあげると、勝手にイベントが作成されて、コードエディタに移る。
が、MonoDevelop の場合は、ダブルクリックしても何も起きない。
ボタンを選択して
プロパティ -> シグナル -> Button Signals -> Clicked
をダブルクリックすると、上の図のように太字になり、イベントが追加される。
下のタブから "ソースコード" を開くと
private virtual void OnButton16Clicked (Object sender...
というのが、追加されていることがわかる。
(いつの間にか Button16 に替ってるのは、いろいろいじってたから)
あとは、ここにコードを追加すればよい。
5. 命令を与えてみる
では、簡単に命令を実行させてみよう。
ここでも、また Visual Sutido と同じようにはいかない。
たとえば、ボタンがクリックされたら、そのボタンの文字を "Hello, world!" に変えてみる。
button16.Label = "Hello, world!";
のような感じになる。
まあ、これは Text が Label に変わっただけだから、すぐ覚えられるだろう。
実行してみるとこんな感じのアプリができた。
以外に使えるじゃないか!w
もうちょっといじってみる。
つづく...
MonoDevelop - Linux で動く .NET 開発環境で遊んでみる

コメントする