メッセージボックスは次のように簡単に表示できます。
msgbox.js
----------------------------------------------------------------
import System.Windows.Forms;
//もっともシンプルな例
System.Windows.Forms.MessageBox.Show("ダメなやつ");
//より複雑な例
MessageBox.Show("文房具屋さんは幽霊", "警告",
MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
最初の例はメッセージ以外にOKボタンしかないシンプルなものです。
2番目はタイトル・ボタン・アイコンを設定しています。
ボタン・アイコンの取りうる値については、
MessageBoxButtons列挙体(MS)と
MessageBoxIcon列挙体を参照。
次のようにするとどのボタンが押されたかが分かります。
msgbox.js
----------------------------------------------------------
import System.Windows.Forms;
import System.Threading;
//Yesが押されるかぎり抜けない
do
Thread.Sleep(10000); //10秒待つ
while(MessageBox.Show("もう10秒待つ?",
"問合せ", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes);
Showメソッドはどのボタンが押されたかを返します。
その値については、
DialogResult列挙体を参照。
ファイルを開くダイアログは次のように簡単に開くことができます。
wincat.js
------------------------------------------------
import System;
import System.IO;
import System.Text;
import System.Windows.Forms;
var dlg : OpenFileDialog = new OpenFileDialog();
if(dlg.ShowDialog() == DialogResult.OK)
ShowText(dlg.FileName);
//テキストファイルを標準出力する
function ShowText(filename : String) {
...
}
OpenFileDialogクラスの
ShowDialogメソッドで開きます。
押されたボタンが開くかキャンセルかの判定はMessageBoxと同じです。
選ばれたファイル名は、
FileNameプロパティに格納されます。
もっと細かい設定をすることもできます。
wincat2.js
-----------------------------------------------------
...
var dlg : OpenFileDialog = new OpenFileDialog();
//複数ファイル選択可
dlg.Multiselect = true;
//ファイルの種類設定
dlg.Filter = "Text (*.txt)|(*.txt)|Script \
(*.js;*.vbs;*.wsf)|*.js;*.vbs;*.wsf";
//2番目のファイルの種類がデフォルト
dlg.FilterIndex = 2;
//最初に開くディレクトリ
dlg.InitialDirectory = ".";
if(dlg.ShowDialog() == DialogResult.OK) {
//FileNamesはStringの配列
for(var i = 0; i < dlg.FileNames.Length; i++)
ShowText(dlg.FileNames[i]);
}
...
名前を付けてファイルを保存ダイアログも同様です。
stripe2.js
------------------------------------------------
...
var dlg : SaveFileDialog = new SaveFileDialog();
dlg.Filter = "Bitmap (*.bmp)|*.bmp";
dlg.InitialDirectory = ".";
if(dlg.ShowDialog() == DialogResult.OK)
MakeBitmap(dlg.FileName);
...
色の設定ダイアログも簡単に使えます。
colordialog.js
------------------------------------------
import System.Windows.Forms;
import System.Drawing; //Colorクラス用
var dlg : ColorDialog = new ColorDialog();
if(dlg.ShowDialog() == DialogResult.OK)
print(dlg.Color.Name);