小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

05、C#--Winform(一)

 印度阿三17 2021-02-14

Winform


Windows 窗體應(yīng)用程序是 C# 語(yǔ)言中的一個(gè)重要應(yīng)用,也是 C# 語(yǔ)言最常見(jiàn)的應(yīng)用。

在創(chuàng)建下面的時(shí)候,創(chuàng)建C# Winform項(xiàng)目即可創(chuàng)建窗體應(yīng)用。

Winform應(yīng)用主要由控件組成,而控件又包含三個(gè)部分:

屬性、事件、方法。

窗體

在每一個(gè) Windows 窗體應(yīng)用程序的項(xiàng)目文件夾中,都會(huì)有一個(gè)默認(rèn)的窗體程序 Form1.cs,并且在項(xiàng)目的 Program.cs 文件中指定要運(yùn)行的窗體。

internal static class Program {
    /// <summary>
    ///     應(yīng)用程序的主入口點(diǎn)。
    /// </summary>
    [STAThread]
    private static void Main() {
        // 啟動(dòng)應(yīng)用程序中可視的樣式
        Application.EnableVisualStyles();
        // 控件支持 UseCompatibleTextRenderingproperty 屬性,該方法將此屬 性設(shè)置為默認(rèn)值。
        Application.SetCompatibleTextRenderingDefault(false);
        // 用于設(shè)置在當(dāng)前項(xiàng)目中要啟動(dòng)的窗體
        Application.Run(new Form1());
    }
}

窗體屬性

每一個(gè) Windows 窗體應(yīng)用程序都是由若干個(gè)窗體構(gòu)成的,窗體中的屬性主要用于設(shè)置窗體的外觀。

窗體的常用屬性如下表所示。

屬性作用
Name用來(lái)獲取或設(shè)置窗體的名稱(chēng)
WindowState獲取或設(shè)置窗體的窗口狀態(tài),取值有3種,即Normal(正常)、Minimized(最小化)、Maximized(最大化),默認(rèn)為 Normal,即正常顯示
StartPosition獲取或設(shè)置窗體運(yùn)行時(shí)的起始位置,取值有 5 種,即 Manual(窗體位置由 Location 屬性決定)、CenterScreen(屏幕居中)、WindowsDefaultLocation( Windows 默認(rèn)位置)、WindowsDefaultBounds(Windows 默認(rèn)位置,邊界由 Windows 決定)、CenterParent(在父窗體中居中),默認(rèn)為 WindowsDefaultLocation
Text獲取或設(shè)置窗口標(biāo)題欄中的文字
MaximizeBox獲取或設(shè)置窗體標(biāo)題欄右上角是否有最大化按鈕,默認(rèn)為 True
MinimizeBox獲取或設(shè)置窗體標(biāo)題欄右上角是否有最小化按鈕,默認(rèn)為 True
BackColor獲取或設(shè)置窗體的背景色
BackgroundImage獲取或設(shè)置窗體的背景圖像
BackgroundImageLayout獲取或設(shè)置圖像布局,取值有 5 種,即 None(圖片居左顯示)、Tile(圖像重復(fù),默認(rèn)值)、Stretch(拉伸)、Center(居中)、Zoom(按比例放大到合適大?。?/td>
Enabled獲取或設(shè)置窗體是否可用
Font獲取或設(shè)置窗體上文字的字體
ForeColor獲取或設(shè)置窗體上文字的顏色
Icon獲取或設(shè)置窗體上顯示的圖標(biāo)

窗體事件

在窗體中除了可以通過(guò)設(shè)置屬性改變外觀外,還提供了事件來(lái)方便窗體的操作。

窗體中常用的事件如下表所示。

事件作用
Load窗體加載事件,在運(yùn)行窗體時(shí)即可執(zhí)行該事件
MouseClick鼠標(biāo)單擊事件
MouseDoubleClick鼠標(biāo)雙擊事件
MouseMove鼠標(biāo)移動(dòng)事件
KeyDown鍵盤(pán)按下事件
KeyUp鍵盤(pán)釋放事件
FormClosing窗體關(guān)閉事件,關(guān)閉窗體時(shí)發(fā)生
FormClosed窗體關(guān)閉事件,關(guān)閉窗體后發(fā)生

窗體方法

定義的窗體都繼承自 System.Windows.Form 類(lèi),能使用 Form 類(lèi)中已有的成員,包括屬性、方法、事件等。

實(shí)際上窗體中也有一些從 System.Windows.Form 類(lèi)繼承的方法,如下表所示。

方法作用
void Show()顯示窗體
void Hide()隱藏窗體
DialogResult ShowDialog()以對(duì)話(huà)框模式顯示窗體
void CenterToParent()使窗體在父窗體邊界內(nèi)居中
void CenterToScreen()使窗體在當(dāng)前屏幕上居中
void Activate()激活窗體并給予它焦點(diǎn)
void Close()關(guān)閉窗體

當(dāng)前窗體需要調(diào)用方法直接使用 this 關(guān)鍵字代表當(dāng)前窗體,通過(guò)this.方法名 (參數(shù)列表)的方式調(diào)用即可。

窗體傳值

窗體之間的傳值有兩種方式:

1、通過(guò)靜態(tài)的數(shù)據(jù)進(jìn)行共享
2、通過(guò)構(gòu)造函數(shù)拿到對(duì)象

1、通過(guò)靜態(tài)的數(shù)據(jù)進(jìn)行共享的方式來(lái)實(shí)現(xiàn)窗體傳值。

// Form1
public partial class Form1 : Form {
    public static String name = "form1的字符串";
    public Form1() {
        InitializeComponent();
    }  

// Form2
private void button2_Click(object sender, EventArgs e) {
    this.textBox1.Text = Form1.name;
}

2、通過(guò)構(gòu)造函數(shù)的方法獲取到傳遞的對(duì)象。

// Form1
public partial class Form1 : Form {
    public string name = "Form1的字符串";
    public Form1() {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e) {
        Form2 form2 = new Form2(name);
        form2.ShowDialog();
    }
}

// Form2
public partial class Form2 : Form {
    public Form2(string name) {
        InitializeComponent();
        label1.Text = name;
    }
}

打開(kāi)窗體

打開(kāi)窗體有兩種方式Show()ShowDialog。

可以不斷的打開(kāi)窗體,每個(gè)窗體都是一個(gè)新的對(duì)象

private void button1_Click(object sender, EventArgs e) {
    Form2 form2 = new Form2();
    form2.Show();
}

打開(kāi)模式窗體,只能打開(kāi)一個(gè)窗體,且只能點(diǎn)擊新窗體,不能點(diǎn)擊第一個(gè)窗體

private void button1_Click(object sender, EventArgs e) {
    Form2 form2 = new Form2();
    form2.ShowDialog();
}

既可操作第一個(gè)窗體,又不會(huì)不斷創(chuàng)新新窗體

public partial class Form1 : Form {
    Form2 form2;
    public Form1() {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e) {
        if (form2 == null) {
            form2 = new Form2();
        }
        form2.Show();
    }
}

MessageBox

在 Windows 窗體應(yīng)用程序中向用戶(hù)提示操作時(shí)也是采用消息框彈出的形式。

在 MessageBox 類(lèi)中僅定義了 Show 的多個(gè)重載方法,該方法的作用就是彈出一個(gè)消息框。

常用的 Show 方法參數(shù)如下表所示。

方法說(shuō)明
DialogResult Show(string text)指定消息框中顯示的文本(text)
DialogResult Show(string text, string caption)指定消息框中顯示的文本(text)以及消息框的標(biāo)題(caption)
DialogResult Show(string text, string caption, MessageBoxButtons buttons)指定消息框中顯示的文本(text)、消息框的 標(biāo)題(caption)以及消息框中顯示的按鈕 (buttons)
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)指定消息框中顯示的文本(text)、消息框的 標(biāo)題(caption )、消息框中顯示的按鈕 (buttons)以及消息框中顯示的圖標(biāo)(icon)

在上面所列出方法的參數(shù)中還涉及兩個(gè)枚舉類(lèi)型,一個(gè)是 MessageBoxButtons,一個(gè)是 MessageBoxIcon。下面分別介紹這兩個(gè)枚舉類(lèi)型中的具體值。

MessageBoxButtons 枚舉類(lèi)型主要用于設(shè)置消息框中顯示的按鈕,具體的枚舉值如下。

  • OK:在消息框中顯示“確定”按鈕。

  • OKCancel:在消息框中顯示“確定”和“取消”按鈕。

  • AbortRetryIgnore:在消息框中顯示“中止” “重試”和“忽略”按鈕。

  • YesNoCancel:在消息框中顯示“是” “否”和“取消”按鈕。

  • YesNo:在消息框中顯示“是”和“否”按鈕。

  • RetryCancel:在消息框中顯示“重試”和“取消”按鈕。

MessageBoxIcon 枚舉類(lèi)型主要用于設(shè)置消息框中顯示的圖標(biāo),具體的枚舉值如下。

  • None:在消息框中不顯示任何圖標(biāo)。

  • Hand、Stop、Error:在消息框中顯示由一個(gè)紅色背景的圓圈及其中的白色X組成 的圖標(biāo)。

  • Question:在消息框中顯示由圓圈和其中的一個(gè)問(wèn)號(hào)組成的圖標(biāo)。

  • Exclamation、Warning:在消息框中顯示由一個(gè)黃色背景的三角形及其中的一個(gè)感嘆號(hào)組成的圖標(biāo)。

  • Asterisk、Information:在消息框中顯示由一個(gè)圓圈及其中的小寫(xiě)字母 i 組成的圖標(biāo)。

調(diào)用 MessageBox 類(lèi)中的 Show 方法將返回一個(gè) DialogResult 類(lèi)型的值。

DialogResult 也是一個(gè)枚舉類(lèi)型,是消息框的返回值,通過(guò)單擊消息框中不同的按鈕得到不同的消息框返回值。

DialogResult 枚舉類(lèi)型的具體值如下。

  • None:消息框沒(méi)有返回值,表明有消息框繼續(xù)運(yùn)行。

  • OK:消息框的返回值是 0K (通常從標(biāo)簽為“確定”的按鈕發(fā)送)。

  • Cancel:消息框的返回值是 Cancel (通常從標(biāo)簽為“取消”的按鈕發(fā)送)。

  • Abort:消息框的返回值是 Abort (通常從標(biāo)簽為“中止”的按鈕發(fā)送)。

  • Retry:消息框的返回值是 Retry (通常從標(biāo)簽為“重試”的按鈕發(fā)送)。

  • Ignore:消息框的返回值是 Ignore (通常從標(biāo)簽為“忽略“的按鈕發(fā)送)。

  • Yes:消息框的返回值是 Yes (通常從標(biāo)簽為“是“的按鈕發(fā)送)。

  • No:消息框的返回值是 No (通常從標(biāo)簽為“否“的按鈕發(fā)送)。

在 Form1窗體中添加鼠標(biāo)單擊事件,并在相應(yīng)的事件中添加如下代碼。

public partial class Form1 : Form {
    public string name = "Form1的字符串";
    public Form1() {
        InitializeComponent();
    }

    private void Form1_Click(object sender, EventArgs e) {
        DialogResult dialogResult = MessageBox.Show("是否打開(kāi)新窗體?", "提示", 
            MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
        if (dialogResult == DialogResult.Yes) {
            Form1 form1 = new Form1();
            form1.Show();
        }else if (dialogResult == DialogResult.No) {
            this.Close();
        }
    }
}

Label & LinkLabel

在 Windows 窗體應(yīng)用程序中,每個(gè)窗體都必不可少地會(huì)用到文本框和標(biāo)簽控件。

在 Windows 窗體應(yīng)用程序中,標(biāo)簽控件王要分為普通的標(biāo)簽 (Label) 和超鏈接形式的標(biāo)簽 (LinkLabel) 。

普通標(biāo)簽 (Label) 控件的常用屬性如下表所示。

屬性名作用
Name標(biāo)簽對(duì)象的名稱(chēng),區(qū)別不同標(biāo)簽唯一標(biāo)志
Text標(biāo)簽對(duì)象上顯示的文本
Font標(biāo)簽中顯示文本的樣式
ForeColor標(biāo)簽中顯示文本的顏色
BackColor標(biāo)簽的背景顏色
Image標(biāo)簽中顯示的圖片
AutoSize標(biāo)簽的大小是否根據(jù)內(nèi)容自動(dòng)調(diào)整,True 為自動(dòng)調(diào)整,F(xiàn)alse 為用戶(hù)自定義大小
Size指定標(biāo)簽控件的大小
Visible標(biāo)簽是否可見(jiàn),True 為可見(jiàn),F(xiàn)alse 為不可見(jiàn)

普通標(biāo)簽控件 (Label) 中的事件與窗體的事件類(lèi)似,常用的事件主要有鼠標(biāo)單擊事件、 鼠標(biāo)雙擊事件、標(biāo)簽上文本改變的事件等。

超鏈接標(biāo)簽主要應(yīng)用的事件是鼠標(biāo)單擊事件,通過(guò)單擊標(biāo)簽完成不同的操作。

在窗體上通過(guò)單擊超鏈接標(biāo)簽 (LinkLabel) 交換這兩個(gè)標(biāo)簽上顯示的信息。

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

    private void linkLabel1_Click(object sender, EventArgs e) {
        string temp = label1.Text;
        label1.Text = label2.Text;
        label2.Text = temp;
    }
}

TextBox

文本框 (TextBox) 是在窗體中輸入信息時(shí)最常用的控件,通過(guò)設(shè)置文本框?qū)傩钥梢詫?shí)現(xiàn)多行文本框、密碼框等。

文本框還有一些不同的屬性, 如下表所示:

屬性名作用
Text文本框?qū)ο笾酗@示的文本
MaxLength在文本框中最多輸入的文本的字符個(gè)數(shù)
WordWrap文本框中的文本是否自動(dòng)換行,如果是 True,則自動(dòng)換行,如果是 False,則不能自動(dòng)換行
PasswordChar將文本框中出現(xiàn)的字符使用指定的字符替換,通常會(huì)使用“*”字符
Multiline指定文本框是否為多行文本框,如果為 True,則為多行文本框,如果 為 False,則為單行文本框
ReadOnly指定文本框中的文本是否可以更改,如果為 True,則不能更改,即只讀文本框,如果為 False,則允許更改文本框中的文本
Lines指定文本框中文本的行數(shù)
ScrollBars指定文本框中是否有滾動(dòng)條,如果為 True,則有滾動(dòng)條,如果為 False, 則沒(méi)有滾動(dòng)條

文本框控件最常使用的事件是文本改變事件 (TextChange),即在文本框控件中的內(nèi)容改變時(shí)觸發(fā)該事件。

創(chuàng)建一個(gè)窗體,在文本框中輸入一個(gè)值,通過(guò)文本改變事件將該文本框中的值寫(xiě)到一個(gè)標(biāo)簽中。

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

    private void TextBox_Changed(object sender, EventArgs e) {
        label2.Text = textBox1.Text;
    }
}

Button

按鈕主要用于提交頁(yè)面的內(nèi)容,或者是確認(rèn)某種操作等。

按鈕包括普通的按鈕 (Button)、單選按鈕 (RadioButton)。

按鈕常用的屬性包括在按鈕中顯示的文字 (Text) 以及按鈕外觀設(shè)置的屬性,最常用的事件是單擊事件。

private void Register_Click(object sender, EventArgs e) {
    string username = textBox1.Text;
    string password = textBox2.Text;
    string rePassword = textBox3.Text;

    if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(rePassword)) {
        MessageBox.Show("輸入的選項(xiàng)不能為空");
    }
    
    if (!password.Equals(rePassword)) {
        MessageBox.Show("兩次輸入的密碼不一致!");
    }
    
    // 將信息傳遞到主窗體
    MainFrame mainFrame = new MainFrame(username, password);
    mainFrame.show();
}

顯示效果如下:

img

RadioButton

在 C# 語(yǔ)言中 RadioButton 是單選按鈕控件,多個(gè) RadioButton 控件可以為一組,這一組內(nèi)的 RadioButton 控件只能有一個(gè)被選中。

完成選擇用戶(hù)權(quán)限的操作,并在消息框中顯示所選的權(quán)限名。

public partial class RadioButtonForm : Form {
    public RadioButtonForm() {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e) {
        string msg = "";
        if (radioButton1.Checked) {
            msg = radioButton1.Text;
        }else if (radioButton2.Checked) {
            msg = radioButton2.Text;
        }else if (radioButton3.Checked) {
            msg = radioButton3.Text;
        }
        MessageBox.Show("您選擇的權(quán)限是:"   msg, "提示");
    }
}

Checked 屬性可用于判斷單選按鈕是否被選中。如果該屬性的返回值為 True,則代表選中;如果返回值為 False,則表示未選中。

CheckBox

復(fù)選框主要的屬性是:Name、Text、Checked。

  • Name:表示這個(gè)組件的名稱(chēng);

  • Text:表示這個(gè)組件的標(biāo)題;

  • Checked:表示這個(gè)組件是否已經(jīng)選中。

主要的事件就是 CheckedChanged 事件。

public partial class CheckBoxForm : Form {
    public CheckBoxForm() {
        InitializeComponent();
    }
    
    private void button1_Click(object sender, EventArgs e) {
        string message = "";
        CheckBox[] _checkBoxes = { checkBox1, checkBox2, checkBox3, checkBox4};
        for (int i = 0; i < _checkBoxes.Length; i  ) {
            if (_checkBoxes[i].Checked) {
                message  = _checkBoxes[i].Text;
            }
        }
        MessageBox.Show("您選擇的愛(ài)好是:"   message, "提示");
    }
}

顯示的效果如下所示:

CheckedListBox

復(fù)選列表框顯示的效果與復(fù)選框類(lèi)似,但在選擇多個(gè)選項(xiàng)時(shí)操作比一般的復(fù)選框更方便。

public partial class CheckedListBox : Form {
    public CheckedListBox() {
        InitializeComponent();
        System.Windows.Forms.CheckedListBox.ObjectCollection objectCollection = checkedListBox1.Items;
        objectCollection.Add("蘋(píng)果");
        objectCollection.Add("荔枝");
        objectCollection.Add("梨子");
        objectCollection.Add("香蕉");
        objectCollection.Add("西瓜");
        objectCollection.Add("葡萄");
        objectCollection.Add("龍眼");
    }

    private void button1_Click(object sender, EventArgs e) {
        string message = "";
        for (int i = 0; i < checkedListBox1.CheckedItems.Count; i  ) {
            message  = checkedListBox1.CheckedItems[i].ToString();
        }

        if (!string.IsNullOrEmpty(message)) {
            MessageBox.Show("您購(gòu)買(mǎi)的水果有:"   message, "提示");
        } else {
            MessageBox.Show("您沒(méi)有選購(gòu)水果!", "提示");
        }
    }
}

其中選中藍(lán)色效果是SelectedItem屬性,而勾選的項(xiàng)則是CheckedItems屬性。

顯示的效果如下所示:

ListBox

列表框 (ListBox) 將所提供的內(nèi)容以列表的形式顯示出來(lái),并可以選擇其中的一項(xiàng)或多項(xiàng)內(nèi)容,從形式上比使用復(fù)選框更好一些。

在列表框控件中有一些屬性與前面介紹的控件不同,如下表所示。

屬性名作用
MultiColumn獲取或設(shè)置列表框是否支持多列,如果設(shè)置為 True,則表示支持多列; 如果設(shè)置為 False,則表示不支持多列,默認(rèn)為 False
Items獲取或設(shè)置列表框控件中的值
SelectedItems獲取列表框中所有選中項(xiàng)的集合
SelectedItem獲取列表框中當(dāng)前選中的項(xiàng)
SelectedIndex獲取列表框中當(dāng)前選中項(xiàng)的索引,索引從 0 開(kāi)始
SelectionMode獲取或設(shè)置列表框中選擇的模式,當(dāng)值為 One 時(shí),代表只能選中一項(xiàng), 當(dāng)值為 MultiSimple 時(shí),代表能選擇多項(xiàng),當(dāng)值為 None 時(shí),代表不能選 擇,當(dāng)值為 MultiExtended 時(shí),代表能選擇多項(xiàng),但要在按下 Shift 鍵后 再選擇列表框中的項(xiàng)

列表框還提供了一些方法來(lái)操作列表框中的選項(xiàng),由于列表框中的選項(xiàng)是一個(gè)集合形式的,列表項(xiàng)的操作都是用 Items 屬性進(jìn)行的。

public partial class ListBoxForm : Form {
    public ListBoxForm() {
        InitializeComponent();
        listBox1.SelectionMode = SelectionMode.MultiSimple;
        ListBox.ObjectCollection listBox1Items = listBox1.Items;
        listBox1Items.Add("籃球");
        listBox1Items.Add("排球");
        listBox1Items.Add("羽毛球");
        listBox1Items.Add("乒乓球");
        listBox1Items.Add("游泳");
        listBox1Items.Add("閱讀");
        listBox1Items.Add("寫(xiě)作");
    }

    private void button1_Click(object sender, EventArgs e) {
        string msg = "";
        for (int i = 0; i < listBox1.SelectedItems.Count; i  ) {
            msg  = listBox1.SelectedItems[i].ToString();
        }

        if (!string.IsNullOrEmpty(msg)) {
            MessageBox.Show("您選擇的愛(ài)好是:"   msg, "提示");
        } else {
            MessageBox.Show("您沒(méi)有選擇愛(ài)好", "提示");
        }
    }
}

ListBox實(shí)現(xiàn)多選需要設(shè)置窗體的 SelectionMode 屬性為 MultiSimple。

運(yùn)行上面的示例,效果如下:

下面實(shí)現(xiàn)一個(gè)對(duì)ListBox進(jìn)行動(dòng)態(tài)添加和刪除的操作:

public partial class ListBoxForm : Form {
    public ListBoxForm() {
        InitializeComponent();
        listBox1.SelectionMode = SelectionMode.MultiSimple;
        ListBox.ObjectCollection listBox1Items = listBox1.Items;
        listBox1Items.Add("籃球");
        listBox1Items.Add("排球");
        listBox1Items.Add("羽毛球");
        listBox1Items.Add("乒乓球");
        listBox1Items.Add("游泳");
        listBox1Items.Add("閱讀");
        listBox1Items.Add("寫(xiě)作");
    }

    private void button1_Click(object sender, EventArgs e) {
        string msg = "";
        for (int i = 0; i < listBox1.SelectedItems.Count; i  ) {
            msg  = listBox1.SelectedItems[i].ToString();
        }

        if (!string.IsNullOrEmpty(msg)) {
            MessageBox.Show("您選擇的愛(ài)好是:"   msg, "提示");
        } else {
            MessageBox.Show("您沒(méi)有選擇愛(ài)好", "提示");
        }
    }

    // 添加
    private void button3_Click(object sender, EventArgs e) {
        string text = textBox1.Text;
        listBox1.Items.Add(text);
    }

    // 刪除
    private void button2_Click(object sender, EventArgs e) {

        for (int i = 0; i < listBox1.SelectedItems.Count; i  ) {
            string str = (string) listBox1.SelectedItems[i];
            listBox1.Items.Remove(str);
        }
    }
}

運(yùn)行上面的示例,效果如下:

注意:在迭代的時(shí)候不要使用foreach語(yǔ)句,因?yàn)閒oreach語(yǔ)句在迭代過(guò)程中不允許修改列表。

ComboBox

組合框(ComboBox)控件也稱(chēng)下拉列表框,用于選擇所需的選項(xiàng),例如在注冊(cè)學(xué)生信息時(shí)選擇學(xué)歷、專(zhuān)業(yè)等。

使用組合框可以有效地避免非法值的輸入。

在組合框中也有一些經(jīng)常使用的屬性,如下表所示。

屬性名作用
DropDownStyle獲取或設(shè)置組合框的外觀,如果值為 Simple,同時(shí)顯示文本框和列表框,并且文本框可以編輯;如果值為 DropDown,則只顯示文本框,通過(guò)鼠標(biāo)或鍵盤(pán)的單擊事件展開(kāi)文本框,并且文本框可以編輯;如果值為 DropDownList,顯示效果與 DropDown 值一樣,但文本框不可編輯。默認(rèn)情況下為 DropDown
Items獲取或設(shè)置組合框中的值
Text獲取或設(shè)置組合框中顯示的文本
MaxDropDownltems獲取或設(shè)置組合框中最多顯示的項(xiàng)數(shù)
Sorted指定是否對(duì)組合框列表中的項(xiàng)進(jìn)行排序,如果值為 True,則排序, 如果值為 False,則不排序。默認(rèn)情況下為 False

根據(jù)題目要求,創(chuàng)建一個(gè)名為 ComboBoxForm 的窗體:

public partial class ComboBoxForm : Form {
    public ComboBoxForm() {
        InitializeComponent();
    }

    private void ComboBoxForm_Load(object sender, System.EventArgs e) {
        comboBox1.Items.Add("計(jì)算機(jī)應(yīng)用");
        comboBox1.Items.Add("英語(yǔ)");
        comboBox1.Items.Add("會(huì)計(jì)");
        comboBox1.Items.Add("軟件工程");
        comboBox1.Items.Add("網(wǎng)絡(luò)工程");
    }

    private void combox1_Select(object sender, System.EventArgs e) {
        MessageBox.Show("您選擇的專(zhuān)業(yè)是:"   comboBox1.Text, "提示");
    }

    private void button1_Click(object sender, System.EventArgs e) {
        if (string.IsNullOrEmpty(textBox1.Text)) {
            MessageBox.Show("請(qǐng)輸入專(zhuān)業(yè)!", "提示");
            return; 
        }
        if (comboBox1.Items.Contains(textBox1.Text)) {
            MessageBox.Show("該專(zhuān)業(yè)已存在!");
            return;
        }
        comboBox1.Items.Add(textBox1.Text);
    }

    private void button2_Click(object sender, System.EventArgs e) {
        if (string.IsNullOrEmpty(textBox1.Text)) {
            MessageBox.Show("請(qǐng)輸入要?jiǎng)h除的專(zhuān)業(yè)", "提示");
            return;
        }
        if (!comboBox1.Items.Contains(textBox1.Text)) {
            MessageBox.Show("您輸入的專(zhuān)業(yè)不存在", "提示");
            return;
        }
        comboBox1.Items.Remove(textBox1.Text);
        MessageBox.Show("您刪除了專(zhuān)業(yè):"   textBox1.Text, "提示");
    }
}

運(yùn)行上面的示例,效果如下:

來(lái)源:https://www./content-1-857351.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多