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

RadioButton控件

在应用程序的开发过程中开发者经常使用多个RadioButton控件来显示一组单选按钮,仅允许用户从中选择一项。RadioButton控件和CheckBox控件的差别在于,用户可以一次选择多个CheckBox复选框,而RadioButton单选按钮却只能选择同组中的一个。

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

<RadioButton .../>

--

<RadioButton ...>

<!--添加内容-->

</RadioButton>

下面介绍一下RadioButton控件的几个常用属性:

  • Content属性,获取或设置RadioButton控件的文本内容。
  • GroupName属性,获取或设置哪些RadioButton控件互相排斥。通过为RadioButton控件指定GroupName属性,将GroupName属性值相同的多个RadioButton控件分为一组,同一组内的选项互相排斥,只能从这组中选择一项。
  • IsChecked属性,获取或设置RadioButton控件是否被选中。当RadioButton控件被选中时,其IsChecked属性的值为true;否则RadioButton控件的IsChecked属性值为false。
  • Name属性,获取或设置RadioButton控件的名称。

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

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

接下来使用RadioButton控件设计一个选择性别的应用示例。

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

<RadioButton GroupName="性别" Name="MaleRadioButton" Content="" HorizontalAlignment="Left" Margin="697,245,0,0" VerticalAlignment="Top"/>

<RadioButton GroupName="性别" Name="FemaleRadioButton" Content="" HorizontalAlignment="Left" Margin="761,245,0,0" VerticalAlignment="Top"/>

<TextBlock FontSize="20" Name="ShowSelected" HorizontalAlignment="Left" Margin="697,299,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="29" Width="120"/>

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

<TextBlock HorizontalAlignment="Left" Margin="558,245,0,0" TextWrapping="Wrap" Text="选择性别:" FontSize="25" VerticalAlignment="Top" Height="37" Width="134"/>

在上面的代码中,添加了两个RadioButton控件分别用于显示"男"和"女"单选按钮,设置这两个RadioButton控件的GroupName属性值都为"性别"。再添加一个Button按钮和两个TextBlock文本块,设置Button按钮的Content属性值为"显示选择","显示选择"按钮用于触发事件以显示选中的单选按钮内容,两个TextBlock文本块分别用于显示文本"选择性别:"和选择的单选按钮内容文本信息。

现在可以运行程序查看界面效果,如图4-11所示。

图4-11 选择性别应用

MainPage.xaml.cs文件中,为"显示选择"按钮的Click事件添加处理方法ShowSelected_Click,当单击"显示选择"按钮时,在ShowSelected文本块中显示选择的单选按钮内容,代码如下所示:

private void ShowSelected_Click(object sender, RoutedEventArgs e)

{

string selectedContent = null;

//判断选择的单选按钮是"男"还是"女"

if (MaleRadioButton.IsChecked == true)

{

selectedContent = "";

}

if (FemaleRadioButton.IsChecked == true)

{

selectedContent = "";

}

//判断是否选中了单选按钮

if (selectedContent != null)

{

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

}

else

{

ShowSelected.Text = "还没有选择";

}

}

在上面的代码中,定义一个string类型的变量selectedContent并赋值为空,通过RadioButton控件的IsChecked属性判断"男"和"女"单选按钮的状态。当单选按钮被选中时,其IsChecked属性值为true,根据选中的单选按钮状态为selectedContent变量赋予不同的值。当selectedContent变量不为空时,将selectedContent变量显示在前台界面,否则显示提示信息"还没有选择"。

运行程序,选择"男"单选按钮,单击"显示选择"按钮,会在界面中显示选择结果"选择了男",效果如图4-12所示。

图4-12 选择性别为"男"后效果

posted on 2017-03-30 20:52 冯瑞涛 阅读( ...) 评论( ...) 编辑 收藏
代码介绍 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、付费专栏及课程。

余额充值