キー操作で幅と高さを変更する

矢印キーでウインドウの幅と高さを変更します。
Console.WriteLine() で「出力ウインドウ」に印字します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 空のプロジェクトを作成して、ソースプログラムをプロジェクトに取り込んで下さい。
    詳細は Form を作成する を参照して下さい。
  2. OnKeyDown() をデリゲートして、キーの押し下げを検出します。
    1. Escape のときプログラムを終了します。
    2. 下矢印キーのとき、ウインドウの高さを広げます。
    3. 上矢印キーのとき、ウインドウの高さを狭めます。
    4. 右矢印キーのとき、ウインドウの幅を広げます。
    5. 左矢印キーのとき、ウインドウの幅を狭めます。
  3. ソースコードです。
    /****************************************************/
    /*★ 矢印キーで Window Size を変更する    前田 稔 ★*/
    /****************************************************/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        public MyForm()
        {
        }
    
        protected override void OnKeyDown(KeyEventArgs e)
        {
            switch(e.KeyCode)
            {   case Keys.Escape:
                    this.Dispose();
                    break;
                case Keys.Down:
                    Height += 10;
                    break;
                case Keys.Up:
                    Height -= 10;
                    break;
                case Keys.Right:
                    Width += 10;
                    break;
                case Keys.Left:
                    Width -= 10;
                    break;
            }
        }
    }
    
    class key
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    

【演習】

  1. Left, Top を操作してキーの操作でウインドウを移動して下さい。
    Left, Top の説明は 背景色とキャプションを設定 を参照して下さい。
  2. ウインドウが移動すると OnMove(EventArgs e) がポストされてきます。
    これをオーバーライドして Console.WriteLine() で Left, Top の値を印字して下さい。
    WriteLine() で印字すると「出力ウインドウ」に表示されます。
    /****************************************************/
    /*★ 矢印キーで Window Size を変更する    前田 稔 ★*/
    /****************************************************/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        public MyForm()
        {
        }
    
        protected override void OnKeyDown(KeyEventArgs e)
        {
            switch(e.KeyCode)
            {   case Keys.Escape:
                    Application.Exit();
                    break;
                case Keys.Down:
                    Top += 10;
                    break;
                case Keys.Up:
                    Top -= 10;
                    break;
                case Keys.Right:
                    Left += 10;
                    break;
                case Keys.Left:
                    Left -= 10;
                    break;
            }
        }
        protected override void OnMove(EventArgs e)
        {
            Console.WriteLine("X座標={0}, Y座標={1},    幅={2}, 高さ={3}", Left, Top, Width, Height);
        }
    }
    
    class key
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  3. Console.WriteLine() で印字する方法はデバッグのときに非常に重宝します。
    Visual Studio の Debug モードでコンパイル&実行をしてから、「出力」タブをクリックして下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門