iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

今天要來說 Button 按鈕控制項,按鈕工具是設計輸出入畫面時很常用到的控制項之一。比如表單上面常會看到的開始取消等按鈕,都是使用按鈕工具製作出來的。按鈕有如開關一樣,主要是用來執行當使用滑鼠在某個按鈕上按一下,馬上就會觸動該按鈕所對應的 Click 事件處理函式,將放在該事件處理函式內的敘述區段執行一次。下面為 Button 常用的屬性:

  1. Text

    用來設定按鈕上面所顯示的文字。

    button1.Text = "傳送";
    
  2. Visible

    用來設定按鈕的顯示或隱藏。True:顯示按鈕;False:隱藏按鈕。

    button1.Visible = false;
    
  3. Enabled

    True:按鈕有用。False:按鈕無效。

    button1.Enabled = false;
    
  4. AllowDrop

    設定按鈕是否允許使用者拖放上來的資料。

  5. Image

    設定或取得控制項使用的影像。如下面兩種寫法皆是指定C槽的 vb.jpg 圖檔來當 button1 的影像。

    button1.Image = new Bitmap("C:\\vb.jpg");
    button1.Image = Image.FromFile("C:\\vb.jpg");
    
  6. DialogResult

    強制回應表單中按鈕按一下所產生對話方塊的結果。有:None、OK、Cancel、Abort、Retry、Yes、No。

    button1.DialogResult = DialogResult.OK;
    
  7. FlatStyle

    當滑鼠越過和按一下按鈕所顯示的方式。有:

    1. Flat:平面
    2. Popup:先顯示平面,直到滑鼠移至該控制項上面,控制項才變3D顯示。
    3. Standard:控制項為3D顯示。(預設值)
    4. System:控制項外觀是由使用者的作業系統決定。

那我們來稍微寫一個猜派蒙位置的小程式~

首先先拉好下圖那樣

左中右分別對應到 button1、button2、button3,重玩是 Btn_Again,離開是 Btn_Exit

namespace ithome2023
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int guess;

        void Check_Ans(int ans)
        {
            if (guess == ans)
            {
                label1.Text = "答對了!派蒙愛你喔";
                if (ans == 1)
                    button1.Image = new Bitmap("Paimon.png");
                if (ans == 2)
                    button2.Image = new Bitmap("Paimon.png");
                if (ans == 3)
                    button3.Image = new Bitmap("Paimon.png");
            }
            else
                label1.Text = "派蒙不在這喔~";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Btn_Again_Click(sender, e);
            this.Text = "猜猜派蒙在哪裡";
            label1.Text = "猜猜派蒙在哪裡?";
            label1.Font = new Font(label1.Font.FontFamily, 14, FontStyle.Regular);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Check_Ans(1);
            button2.Enabled = button3.Enabled = false;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Check_Ans(2);
            button1.Enabled = button3.Enabled = false;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Check_Ans(3);
            button1.Enabled = button2.Enabled = false;
        }

        private void Btn_Again_Click(object sender, EventArgs e)
        {
            Random r = new Random();
            guess = r.Next(1, 4);
            label1.Text = "";
            button1.Enabled = button2.Enabled = button3.Enabled = true;
            button1.Image = button2.Image = button3.Image = null;
        }

        private void Btn_Exit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
tags: 2023鐵人賽

上一篇
2023鐵人賽 Day 17 Label 標籤控制項
下一篇
2023鐵人賽 Day 19 TextBox 文字方塊控制項
系列文
C#世界深入探險,走走不同副本之路-Windows Form30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言