JScript.NET  新JavaScript入門  JavaScript,Neo-Generation  DOM  WSH  掲示板  表紙
Written 9/10/03
JScript.NET
コモンダイアログ
System.Windows.Forms
JScript.NETではSystem.Windows.Forms名前空間に含まれるクラスを用いて GUIを作ります。
このページでは、 最も簡単なメッセージボックスとコモンダイアログについて紹介します。
MessageBox
メッセージボックスは次のように簡単に表示できます。
    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列挙体を参照。
OpenFileDialog
ファイルを開くダイアログは次のように簡単に開くことができます。
    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]);
    }
        ...
 
SaveFileDialog
名前を付けてファイルを保存ダイアログも同様です。
    stripe2.js
    ------------------------------------------------
        ...
    var dlg : SaveFileDialog = new SaveFileDialog();
    dlg.Filter = "Bitmap (*.bmp)|*.bmp";
    dlg.InitialDirectory = ".";
    if(dlg.ShowDialog() == DialogResult.OK)
        MakeBitmap(dlg.FileName);
        ...
 
ColorDialog
色の設定ダイアログも簡単に使えます。
    colordialog.js
    ------------------------------------------
    import System.Windows.Forms;
    import System.Drawing;   //Colorクラス用
    
    var dlg : ColorDialog = new ColorDialog();
    if(dlg.ShowDialog() == DialogResult.OK)
        print(dlg.Color.Name);
 
JScript.NET exit