GUI


Form とは, GUI をはりつける部品の領域のこと. System.Windows.Forms.Form USAGE File > New > C# WindowsApplication コントロールはツールボックスから配置する。
表示 > ツールボックス
d:/img/test/test.bmp File 構成 Form1_Designer.cs // Form1 class が定義されている. Form 用の code ( 自動生成 ) Program.cs // EntryPoint 新たにフォームを作る SE > NodeApp > RMB > 「追加」→「Windowsフォームの追加」


DialogBox


// どのボタンを選択したかを判断する if (MessageBox.Show("ボタンを選択", "タイトル", MessageBoxButtons.YesNo) == DialogResult.Yes) { MessageBox.Show("[はい] ボタンを選択しました"); } else { MessageBox.Show("[いいえ] ボタンを選択しました"); }



Event





Mouse(マウスイベント)


// マウスボタンの左ボタンが押されたときにウィンドウを移動する。 private void splitContainer1_Panel1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { this.Left += e.X; this.Top += e.Y; } }



KeyboardEvent(キーボードイベント)





Form


using System.Windows.Forms;
// Icon // タイトル Form.Text = "タイトル"; // 透明 Form.Opactiy = 0.5f; // 最前面 Form.TopMost = true; // 最大, 最小ボタン Form.MaximizeBox = false; Form.MinimizeBox = false; // 背景画像 Form.backgroundImage = Image.FromFile( "d:/test.bmp" ); // ウィンドウ枠( フレーム )をなしにする。 Form.FormBorderStyle = FormBorderStyle.None; Form.TransparencyKey = Color.White; // 表示する。 Form.Show(); // 閉じる Form.Close(); // 非表示にする。 Form.Hide(); // フォームを強制的にアクティブにする // 複数のフォームやマルチタスクによりフォーカスが他のフォームに移る場合に使う。 this.Activate();
Show メソッドは生成元のオブジェクトが残る。 Form1とForm2が同時 に表示され 同時にフォーム上のコントロールを操作できる。
private void Form1_Load(object sender, System.EventArgs e) { Form Form2=new Form(); Form2.Show(); }
ShowDialog メソッドは生成元のオブジェクトからフォーカスを奪うとともに 生成元を閉じる。
private void Form1_Load(object sender, System.EventArgs e) { Form Form2=new Form(); Form2.ShowDialog(); } ShowDialogメソッドで開いたフォームの場合 Closeメソッドを実行してもフォームオブジェクトは捨てられないので Disposeメソッドを併せて実行すること。 (Disposeすることによって使用メモリが開放される。) this.Dispose();
フォームを画面中央に表示するには 画面全体の大きさを取得する。
int w, h; w = Screen.PrimaryScreen.WorkingArea.Width; //画面の幅 h = Screen.PrimaryScreen.WorkingArea.Height; //画面の高さ
// Form の表示前 private void Form_load( object sender, EventArgs e ) { } // Form の閉じる前 private void Form_FormClosing( object sender, EventArgs e ) { } // Form の閉じた後 private void Form_Closed( object sender, EventArgs e ) { } // Form のサイズが変わったとき private void Form_Resize( object sender, EventArgs e ) { }



DragDrop


まず DragDrop をうけつけるように form の AllowDrop プロパティを true にする。
DragDrop = true
// DragDrop をうけつける プロパティエディタで "イベント" で"DragDrop" と "DragEnter" に用意する。 // "DragEnter" のイベントハンドラー内で、ドラッグされてきたファイルを受け入れられることを通知するプログラムを記載します。 private void dataGridMeisaisyo_DragEnter(object sender, DragEventArgs e) { // ファイルのドラッグアンドドロップのみを受け付けるようにする。 if (e.Data.GetDataPresent(DataFormats.FileDrop)) { // ドロップされたファイルは、アプリケーション側に内容がコピーされる e.Effect = DragDropEffects.Copy; } } // "DragDrop" イベントハンドラーに、ドロップされた時の制御プログラムをかく private void dataGridMeisaisyo_DragDrop(object sender, DragEventArgs e) { // ドラッグアンドドロップされたファイルのパス情報を取得します。 foreach (String path in (string[])e.Data.GetData(DataFormats.FileDrop) ) { // "filename" 変数に格納されたドロップされたファイルの処理をする。 } }



Control


// 表示, 非表示 Control.Visible = true; // 有効/無効 Control.Enabled = true; // 位置 Control.Left = 0; Control.Top = 0; // 大きさ Control.Width = 100; Control.Hight = 100; // 自身にフォーカスする Control.Focus();



Control.の動的な追加


Form.Controls.Add( Control ) Form_load() { Label l = new Label(); this.Controls.Add( l ); this.Controls.Remove( l ); }



layout





SplitContainer


DESC Control がない状態でフォームに配置すると 縦に分割した2つの領域を作成できる。


TrackBar(Slider)


// 最大最小を設定 TrackBar1.Minimum = 1; TrackBar1.Maximum = 10; // 現在の値 ( カーソル位置も変更される ) TrackBar1.Value = 5;
カーソルが移動した時のコールバック
private void trackBar1_Scroll(object sender, EventArgs e) { int value = trackBar1.Value; }



Textbox


{ this.LogWindow.Clear (); // 文字列を追加 LogWindow. // Accept.cs 参照
textbox1.Text = "aaa"; textbox1.Clear(); // ReadOnly にする textbox1.ReadOnly = true; // 選択された文字列 textbox1.SelectedText; // 選択された文字数 textbox1.SelectionLength; // 行数( string 配列 ) textbox1.Lines.Length; // 追加する。 textbox1.AppendText ( str + "\r\n" ); MessageBox.Show( textbox1.Text );



CheckBox


if ( CheckBox1.Checked() ) { }



Listbox


// 項目を追加 listBox1.Items.Add( "A" ); listBox1.Items.Add( "B" ); // 削除 listBox1.Items.Remove( "B" ); listBox1.Items.RemoveAt( 2 ); listBox1.Items.Clear() Object o = listBox1.SelectionItem; int i = listBox1.SelectedIndex;



CommboBox


// 項目を追加 commboBox1.Items.Add( "A" ); commboBox1.Items.Add( "B" ); // 選択中のアイテム commboBox1.Text;



ProgressBar


//progressBar1.Maximum = 100; //progressBar1.Value += 10; //progressBar1.Value += 50; progressBar1.Value += 33; WARNING Value が 100 を超えると, 落ちる query すること // windows の style の影響をうける //progressBar1.Style = ProgressBarStyle.Marquee; progressBar1.Style = ProgressBarStyle.Continuous;



PictureBox


// 画像を設定 pictureBox1.Image = Image.FromFile( "d:/foo.bmp" ); // 大きさの調整 pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;