C#编写WinForm窗体应用程序(第四期)

简介: 在 C# 语言中 RadioButton 是单选按钮控件,多个 RadioButton 控件可以为一组,这一组内的 RadioButton 控件只能有一个被选中。

C# RadioButton:单选按钮控件

在 C# 语言中 RadioButton 是单选按钮控件,多个 RadioButton 控件可以为一组,这一组内的 RadioButton 控件只能有一个被选中。

下面通过实例来演示单选按钮控件 RadioButton 的应用。

【实例】完成选择用户权限的操作,并在消息框中显示所选的权限名。

根据题目要求,用户权限包括“普通用户”“年卡用户”“VIP 用户”,因此需要 3 个单选按钮。

实现该功能的窗体名称为 RadioButtonForm,界面设计如下图所示:

选择用户权限界面,单击“确认”按钮选择相应的用户权限,实现的代码如下:

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("您选择的权限是:" + msg, "提示");
    }
}

RadioButtonForm 窗体的运行效果如下图所示:



提示:Checked 属性可用于判断单选按钮是否被选中。如果该属性的返回值为 True,则代表选中;如果返回值为 False,则表示未选中。

C# CheckBox

在 C# 语言中复选框 (CheckBox) 是与刚才介绍的单选按钮相对应的,用于选择多个选项的操作。

复选框主要的属性是:Name、Text、Checked。

其中:

• Name:表示这个组件的名称;

• Text:表示这个组件的标题;

• Checked:表示这个组件是否已经选中。

主要的事件就是 CheckedChanged 事件。

下面通过实例来演示复选框 (CheckBox) 的应用。

【实例】完成选择用户爱好的操作,并在消息框中显示所选的爱好。

根据题目要求,用户爱好包括篮球、排球、羽毛球、乒乓球、游泳、阅读、写作,因此需要 7 个复选框。

实现该功能的窗体名称为 CheckBoxForm,窗体设计如下图所示。

选择爱好的窗体设计界面

单击“确认”按钮显示选择的爱好,实现的代码如下。

public partial class CheckBoxForm : Form
{
    public CheckBoxForm()
    {
        InitializeComponent();
    }
    //单击“确认”按钮,显示选择的爱好
    private void button1_Click(object sender, EventArgs e)
    {
        string msg = "";
        if (checkBox1.Checked)
        {
            msg = msg + " " + checkBox1.Text;
        }
        if (checkBox2.Checked)
        {
            msg = msg + " " + checkBox2.Text;
        }
        if (checkBox3.Checked)
        {
            msg = msg + " " + checkBox3.Text;
        }
        if (checkBox4.Checked)
        {
            msg = msg + " " + checkBox4.Text;
        }
        if (checkBox5.Checked)
        {
            msg = msg + " " + checkBox5.Text;
        }
        if (checkBox6.Checked)
        {
            msg = msg + " " + checkBox6.Text;
        }
        if (checkBox7.Checked)
        {
            msg = msg + " " + checkBox7.Text;
        }
        if(msg != "")
        {
            MessageBox.Show("您选择的爱好是:" + msg, "提示");
        }
        else
        {
            MessageBox.Show("您没有选择爱好", "提示");
        }
    }
}

效果如下图所示:



与判断单选按钮是否被选中一样,判断复选框是否被选中也使用 Checked 属性。 试想如果界面上的复选框有几十个或更多,每个复选框都需要判断,则会出现很多的冗余代码。Control除了可以在界面上查找复选框以外,还可以查找其他控件。

C# CheckedListBox

在 C# 语言中提供了与《C# CheckBox》一节中介绍的复选框功能类似的复选列表框 (CheckedListBox),方便用户设置和获取复选列表框中的选项。

复选列表框显示的效果与复选框类似,但在选择多个选项时操作比一般的复选框更方便。

下面通过实例来演示复选列表框的应用。

【实例】使用复选列表框完成选购水果的操作。

根据题目要求,创建一个名为 CheckedListBox 窗体,在复选列表框中添加 6 种水果, 单击“购买”按钮,弹出消息框显示购买的水果种类。

该窗体的设计界面如下图所示:

实现单击“购买”按钮的代码如下:

public partial class CheckedListBox : Form
{
    public CheckedListBox()
    {
        InitializeComponent();
    }
    //“购买”按钮的点击事件,用于在消息框中显示购买的水果种类
    private void button1_Click(object sender, EventArgs e)
    {
        string msg = "";
        for(int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
        {
            msg = msg + " " + checkedListBox1.CheckedItems[i].ToString();
        }
        if (msg != "")
        {
            MessageBox.Show("您购买的水果有:" + msg, "提示");
        }
        else
        {
            MessageBox.Show("您没有选购水果!", "提示");
        }
    }
}

效果图如下:



在使用复选列表框控件时需要注意获取列表中的项使用的是 Checkedltems 属性,获取当前选中的文本(上图中蓝色的区域)使用的是 Selectedltem 属性。

结束语

各位互联网上的同事、同仁、同学们,C# 编写 WinForm 窗体应用程序(第三期)到这里就结束了。

相关文章
|
1月前
|
缓存 C# Windows
C#程序如何编译成Native代码
【10月更文挑战第15天】在C#中,可以通过.NET Native和第三方工具(如Ngen.exe)将程序编译成Native代码,以提升性能和启动速度。.NET Native适用于UWP应用,而Ngen.exe则通过预编译托管程序集为本地机器代码来加速启动。不过,这些方法也可能增加编译时间和部署复杂度。
|
23天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
31 3
|
22天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
37 1
|
21天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
11 0
|
1月前
|
设计模式 程序员 C#
C# 使用 WinForm MDI 模式管理多个子窗体程序的详细步骤
WinForm MDI 模式就像是有超能力一般,让多个子窗体井然有序地排列在一个主窗体之下,既美观又实用。不过,也要小心管理好子窗体们的生命周期哦,否则一不小心就会出现一些意想不到的小bug
|
1月前
|
消息中间件 网络协议 安全
C# 一分钟浅谈:WebSocket 协议应用
【10月更文挑战第6天】在过去的一年中,我参与了一个基于 WebSocket 的实时通信系统项目,该项目不仅提升了工作效率,还改善了用户体验。本文将分享在 C# 中应用 WebSocket 协议的经验和心得,包括基础概念、C# 实现示例、常见问题及解决方案等内容,希望能为广大开发者提供参考。
104 0
|
1月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
78 0
|
1月前
|
XML 存储 安全
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
62 0
|
1月前
|
Web App开发 网络协议 API
基于C#编写一个远程桌面应用
基于C#编写一个远程桌面应用
41 0
|
1月前
|
Java 程序员 C#
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
13 0