どっとねっとふぁん

C# Tips And Samples
in 検索

05.レイアウトをくずさないために

最新の投稿は、投稿日時: 06-24-2005, 11:17 午前 投稿者: ono です。スレッドには 0 件の返答があります。
投稿のソート: 前へ 次へ
  •  06-24-2005, 11:17 午前 77

    05.レイアウトをくずさないために


    デフォルトの状態ではWindowの大きさは自由に変更することができます。
    このために、画面のレイアウトがくずれてしまうことがあります。

    意図したとおりのレイアウトをみてもらうためには、画面の大きさを固定してしまうという方法が考えられます。
    -------------------------------------------------------
    using System;
    using System.Windows.Forms;
    
    class HelloWorld : Form
    {
        private Button mybutton;
    
        public static void Main()
        {
            Application.Run(new HelloWorld());
        }
    
        public HelloWorld()
        {
            this.mybutton = new Button();
    
            this.SuspendLayout();
    
            this.Text = "Hello World!";
    
            // Formのサイズを固定
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            // 最大化ボタンの無効化
            this.MaximizeBox = false;
    
            this.mybutton.Location = new System.Drawing.Point(200, 200);
            this.mybutton.Text = "閉じるよ";
            this.mybutton.Click += new EventHandler(this.mb_Click);
            this.Controls.Add(mybutton);
    
            this.ResumeLayout(false);
        }
    
        private void mb_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
    
    -------------------------------------------------------
    このように、Windowのサイズを変更できないようにして、最大化ボタンも効かないようにすれば、画面のレイアウトはくずれません。

    別の方法として、コントロールの表示位置をWindowの枠から一定の位置に設定するという方法もあります。
    -------------------------------------------------------
    using System;
    using System.Windows.Forms;
    
    class HelloWorld : Form
    {
        // ボタンのインスタンスを格納する領域を確保する
        private Button mybutton;
    
        public static void Main()
        {
            Application.Run(new HelloWorld());
        }
    
        public HelloWorld()
        {
            this.mybutton = new Button();
    
            this.SuspendLayout();
    
            this.Text = "Hello World!";
    
            // Windowの最小サイズの設定
            this.MinimumSize = new System.Drawing.Size(120, 130);
    
            this.mybutton.Location = new System.Drawing.Point(200, 200);
            this.mybutton.Text = "閉じるよ";
            this.mybutton.Click += new EventHandler(this.mb_Click);
            this.Controls.Add(mybutton);
    
            // ボタンの表示位置の固定(右枠と下枠からの距離の固定)
            this.mybutton.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
    
            this.ResumeLayout(false);
    
        }
    
        private void mb_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
    
    -------------------------------------------------------
    この例では、ボタンは必ずWindowの右枠と下枠から一定の距離のところに表示されます。
    Windowを小さくしていってもボタンが隠れることのないよう、Windowの最小サイズも指定しています。

    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
RSS ニュースフィードで参照
SkinName:iroha_CS2
Powered by Community Server, by Telligent Systems