Win10系列:C#应用控件基础3

本文介绍了CheckBox控件的基本用法及属性,演示了如何利用CheckBox控件制作一个选择喜爱运动项目的应用示例。

CheckBox控件

在应用程序的开发过程中开发者经常使用一组CheckBox控件来显示多个复选框,让用户从中选择一个或多个。当用户勾选复选框后,被选中的复选框会被标记为勾选状态,再次点击此复选框可取消勾选。下面介绍CheckBox控件的使用方法。

在XAML文件中,CheckBox控件的用法如下所示:

<CheckBox .../>

--

<CheckBox ...>

<!--添加子元素-->

</CheckBox>

--

<CheckBox ...>

<!--添加字符串-->

</CheckBox>

下面介绍一下CheckBox控件的常用属性:

  • Content属性,获取或设置CheckBox控件的文本内容。
  • IsChecked属性,获取或设置CheckBox控件是否被选中。当选中CheckBox控件后,其IsChecked属性值为true;否则CheckBox控件的IsChecked属性值为false。
  • IsEnabled属性,获取或设置CheckBox控件是否可用。

介绍完常用属性后,接着来看一下CheckBox控件的常用事件:

  • Click事件,当单击CheckBox控件时触发。
  • Checked事件,当选中CheckBox控件时触发。
  • Unchecked事件,当取消选中CheckBox控件时触发。

接下来使用CheckBox控件设计一个选择喜爱运动项目的应用示例。

新建一个名为"CheckBoxDemo"的Windows应用商店的空白应用程序项目,在MainPage.xaml文件的Grid元素中添加如下代码。

<CheckBox Content="足球" Name="Football" HorizontalAlignment="Left" Margin="564,413,0,0" VerticalAlignment="Top"/>

<CheckBox Content="篮球" Name="Basketball" HorizontalAlignment="Left" Margin="648,413,0,0" VerticalAlignment="Top"/>

<CheckBox Content="排球" Name="Volleyball" HorizontalAlignment="Left" Margin="736,413,0,0" VerticalAlignment="Top"/>

<TextBlock FontSize="20" HorizontalAlignment="Left" Margin="677,469,0,0" TextWrapping="Wrap" Name="ShowContent" VerticalAlignment="Top" Height="26" Width="150"/>

<Button Content="显示选择" HorizontalAlignment="Left" Margin="564,460,0,0" VerticalAlignment="Top" Click="ShowSelected_Click"/>

<TextBlock HorizontalAlignment="Left" Margin="597,381,0,0" FontSize="20" TextWrapping="Wrap" Text="选择喜爱的运动项目" VerticalAlignment="Top" Height="27" Width="198"/>

在上面的代码中,添加了三个CheckBox控件、一个Button按钮和两个TextBlock文本块。三个CheckBox控件分别表示"足球"、"篮球"和"排球"复选框,设置Button按钮的Content属性值为"显示选择","显示选择"按钮用于显示选中的复选框信息,两个TextBlock文本块分别用于显示"选择喜爱的运动项目"文本信息和选择了哪些运动项目。

这时可以运行应用查看它的外观,如图4-5所示。

图4-5 选择喜爱的运动项目应用外观

如果此时单击"显示选择"按钮,并不会产生任何的效果,因为还没有为按钮的单击事件处理方法添加代码。

打开MainPage.xaml.cs文件,为"显示选择"按钮的单击事件处理方法ShowSelected_Click编写代码,完成后的代码如下所示:

private void ShowSelected_Click(object sender, RoutedEventArgs e)

{

string selectedContent = null;

//判断选择了哪些运动项目

if (Football.IsChecked == true)

{

selectedContent += "足球";

}

if (Basketball.IsChecked == true)

{

selectedContent += "篮球";

}

if (Volleyball.IsChecked == true)

{

selectedContent += "排球";

}

//如果选择不为空,显示选择了哪些运动项目

if (selectedContent != null)

{

ShowContent.Text = "选择了" + selectedContent;

}

}

在上面的代码中,首先定义一个string类型的变量selectedContent并赋值为空,用于存储被选中的复选框中的内容,通过CheckBox控件的IsChecked属性分别判断"足球"、"篮球"和"排球"复选框的状态,当复选框被选中,其IsChecked属性值为true,满足if语句后将复选框的内容添加到selectedContent变量中,最后把selectedContent变量赋给ShowContent文本块的Text属性,将选中的复选框信息显示在前台界面。

运行程序,勾选"足球"和"篮球"复选框,单击"显示选择"按钮,显示"选择了足球篮球"信息,效果如图4-6所示。

图4-6 勾选复选框并显示选择内容

代码介绍 MetroForWinForm(win8风格模版) using System; using System.Drawing; using System.Globalization; using System.Windows.Forms; using MetroFramework.Forms; namespace MetroFramework.Demo { public partial class MainForm : MetroForm { public MainForm() { InitializeComponent(); metroStyleManager.Theme = MetroThemeStyle.Default; metroStyleManager.Style = MetroColorStyle.Teal; } private void metroTileSwitch_Click(object sender, EventArgs e) { var m = new Random(); int next = m.Next(0, 13); metroStyleManager.Style = (MetroColorStyle)next; } private void metroTile1_Click(object sender, EventArgs e) { metroStyleManager.Theme = metroStyleManager.Theme == MetroThemeStyle.Light ? MetroThemeStyle.Dark : MetroThemeStyle.Light; } private void metroButton1_Click(object sender, EventArgs e) { MetroTaskWindow.ShowTaskWindow(this, "SubControl in TaskWindow", new TaskWindowControl(), 10); } private void metroButton2_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "Do you like this metro message box?", "Metro Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Asterisk); } private void metroButton5_Click(object sender, EventArgs e) { metroContextMenu1.Show(metroButton5, new Point(0, metroButton5.Height)); } private void metroButton6_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "This is a sample MetroMessagebox `OK` only button", "MetroMessagebox", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void metroButton10_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "This is a sample MetroMessagebox `OK` and `Cancel` button", "MetroMessagebox", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); } private void metroButton7_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "This is a sample MetroMessagebox `Yes` and `No` button", "MetroMessagebox", MessageBoxButtons.YesNo, MessageBoxIcon.Question); } private void metroButton8_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "This is a sample MetroMessagebox `Yes`, `No` and `Cancel` button", "MetroMessagebox", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); } private void metroButton11_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "This is a sample MetroMessagebox `Retry` and `Cancel` button. With warning style.", "MetroMessagebox", MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning); } private void metroButton9_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "This is a sample MetroMessagebox `Abort`, `Retry` and `Ignore` button. With Error style.", "MetroMessagebox", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error); } private void metroButton12_Click(object sender, EventArgs e) { MetroMessageBox.Show(this, "This is a sample `default` MetroMessagebox ", "MetroMessagebox"); } private void metroButton4_Click(object sender, EventArgs e) { var testform = new TestForm1(); testform.ShowDialog(); } private void metroButton4_Click_1(object sender, EventArgs e) { metroTextBox2.Focus(); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值