WPF篇(9)-CheckBox复选框+RadioButton单选框+RepeatButton重复按钮

CheckBox复选框

CheckBox继承于ToggleButton,而ToggleButton继承于ButtonBase基类。

案例

前端代码

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><TextBlock Text="今晚吃什么菜?" Margin="5"/><CheckBox Name="_checkbox1" Content="红烧牛肉" Margin="5"/><CheckBox Name="_checkbox2" Content="麻婆豆腐" Margin="5"/><CheckBox Name="_checkbox3" Content="夫妻肺片" Margin="5"/><Button x:Name="_button" Content="查看菜单"  Click="_button_Click"/></StackPanel>

后端代码

  private void _button_Click(object sender, RoutedEventArgs e){string order = string.Empty;if (_checkbox1.IsChecked == true)order += _checkbox1.Content + ",";if (_checkbox2.IsChecked == true)order += _checkbox2.Content + ",";if (_checkbox3.IsChecked == true)order += _checkbox3.Content;if(!string.IsNullOrEmpty(order))MessageBox.Show(order);}

在这里插入图片描述

我们通过判断CheckBox的IsChecked属性,来获取前端用户的选择。

RadioButton单选框

RadioButton也继承于ToggleButton,作用是单项选择,所以被称为单选框。
要注意:
这个控件有一个重要属性叫GroupName——分组名称。默认值是一个空字符串。用来指定哪些RadioButton之间是互相排斥的。

案例

前端代码

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><TextBlock Text="今晚吃什么菜?" Margin="5"/><RadioButton Name="_RadioButton1" Content="红烧牛肉" Margin="5"/><RadioButton Name="_RadioButton2" Content="麻婆豆腐" Margin="5"/><RadioButton Name="_RadioButton3" Content="夫妻肺片" Margin="5"/><Button x:Name="_button" Content="查看菜单"  Click="_button_Click"/></StackPanel>

后端代码

        private void _button_Click(object sender, RoutedEventArgs e){string order = string.Empty;if (_RadioButton1.IsChecked == true)order += _RadioButton1.Content + ",";if (_RadioButton2.IsChecked == true)order += _RadioButton2.Content + ",";if (_RadioButton3.IsChecked == true)order += _RadioButton3.Content;if(!string.IsNullOrEmpty(order))MessageBox.Show(order);}

在这里插入图片描述

这时候我们发现无论怎么选就只能选一个。如果我们要求必须选择一荤一素怎么办?我们看看组的使用。

前端代码

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><TextBlock Text="今晚吃什么菜?" Margin="5"/><RadioButton Name="_RadioButton1" Content="红烧牛肉" GroupName="荤菜" Margin="5"/><RadioButton Name="_RadioButton2" Content="糖醋排骨" GroupName="荤菜" Margin="5"/><RadioButton Name="_RadioButton3" Content="麻婆豆腐" GroupName="素菜" Margin="5"/><RadioButton Name="_RadioButton4" Content="清炒时蔬" GroupName="素菜" Margin="5"/><Button x:Name="_button" Content="查看菜单"  Click="_button_Click"/></StackPanel>

后端代码

private void _button_Click(object sender, RoutedEventArgs e)
{string order = string.Empty;if (_RadioButton1.IsChecked == true)order += _RadioButton1.Content + ",";if (_RadioButton2.IsChecked == true)order += _RadioButton2.Content + ",";if (_RadioButton3.IsChecked == true)order += _RadioButton3.Content + ",";if (_RadioButton4.IsChecked == true)order += _RadioButton4.Content;if (!string.IsNullOrEmpty(order))MessageBox.Show(order);
}

在这里插入图片描述

此时再操作时我们发现,红烧牛肉和糖醋排骨只能二选一,麻婆豆腐和清炒时蔬也只能二选一。

RepeatButton重复按钮

RepeatButton,顾名思义,重复执行的按钮。就是当按钮被按下时,所订阅的回调函数会不断被执行。那么,多长时间执行一次?

我们先看看它的结构定义:

public class RepeatButton : ButtonBase
{public static readonly DependencyProperty DelayProperty;public static readonly DependencyProperty IntervalProperty;public RepeatButton();public int Delay { get; set; }public int Interval { get; set; }protected override void OnClick();protected override AutomationPeer OnCreateAutomationPeer();protected override void OnKeyDown(KeyEventArgs e);protected override void OnKeyUp(KeyEventArgs e);protected override void OnLostMouseCapture(MouseEventArgs e);protected override void OnMouseEnter(MouseEventArgs e);protected override void OnMouseLeave(MouseEventArgs e);protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e);protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e);}

1. 属性分析

RepeatButton 自身提供了两个整型属性,分别是Delay 和Interval 。

  • Delay 属性:表示延时重复执行的毫秒数,就是说,RepeatButton被按下后会立即执行一次回调函数,如果您不松开鼠标,在等待Delay 毫秒后,就开始进行重复执行阶段。
  • Interval 属性:表示重复执行回调函数的时间间隔毫秒数

2. RepeatButton 应用示例

前端代码

  <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><TextBlock Text="食用油准备好" Margin="5 7 5 5"/><RepeatButton Name="_Button1" Content="开始倒油" Delay="1000" Interval="500" Click="_Button1_Click"  Margin="5"/></StackPanel>

后端代码

public partial class MainWindow{public MainWindow(){InitializeComponent();}int count = 1;private void _Button1_Click(object sender, RoutedEventArgs e){Console.WriteLine($"重复时间:{DateTime.Now.ToLongTimeString()} {DateTime.Now.Millisecond},重复次数:{count++}");}}

在这里插入图片描述
结果显示,第一次和第二次输出时间刚好为1000毫秒,也就是Delay属性在起作用。然后,从第2次开始,每两次之间的时间间隔大约为500毫秒,这是因为Interval属性被设置为500。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/397172.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习笔记-JS篇-01

JS基础Day1-01-必看-基本软件以及准备工作_哔哩哔哩_bilibili JavaScript介绍 是什么 1.JavaScript (是什么?) 是一种运行在客户端(浏览器)的编程语言&#xff0c;实现人机交互效果2.作用(做什么?) 网页特效(监听用户的一些行为让网页作出对应的反馈)表单验证(针对表单…

8.9-python管理

一、回顾 [rootpython ~]# vim test.py ​ a3 b4 print(ab) print(a**2b**2) print(25**0.5) ​ [rootpython ~]# python3 test.py 7 25 5.0 ​ ​ #调试test.py脚本 [rootpython ~]# python3 -m pdb test.py > /root/test.py(1)<module>() -> a3 (Pdb) n > …

SpringCloud天机学堂:我的课表(三)

SpringCloud天机学堂&#xff1a;我的课表&#xff08;三&#xff09; 文章目录 SpringCloud天机学堂&#xff1a;我的课表&#xff08;三&#xff09;1、添加课程到课表2、分页查询课表3、查询正在学习的课程 1、添加课程到课表 首先&#xff0c;用户支付完成后&#xff0c;需…

JSON + AJAX + ThreadLocal + 文件上传下载

JSON数据交换 规则 JSON对象和字符串转换 <script type"text/javascript">var jsonPerson {"name": "jack","age": 20}console.log(jsonPerson);var strPerson JSON.stringify(jsonPerson);//对jsonPerson没有影响console.lo…

django如何更新数据库字段并与数据库保持同步?

关键步骤&#xff1a; 第一步&#xff1a; 执行&#xff1a;python manage.py makemigrations 你的项目名称第二步&#xff1a;它会提示你选1还是2&#xff0c;这里因为添加字段&#xff0c;所以选1第三步&#xff1a;出现>>>这个&#xff0c;直接输入这个第四步&am…

cnetos部署高可用以及七层负载均衡

文章目录 centos部署高可用以及七层负载均衡一、准备环境二、配置高可用第一台&#xff1a;第二台&#xff1a; 三、配置负载均衡第一台的七层负载均衡器为haproxy第二台的七层负载均衡器为nginx 四、配置后端服务器五、测试 centos部署高可用以及七层负载均衡 一、准备环境 …

密码学基础:搞懂Hash函数SHA1、SHA-2、SHA3(1)

目录 1.消息摘要(Hash) 2.SHA-1 3.SHA-2 4.小结 1.消息摘要(Hash) Hash函数是一种单向密码体制&#xff0c;把任意长度的输入经过变换得到一个固定长度的输出&#xff0c;同时它还具备单向性&#xff0c;只能从明文到密文&#xff0c;不能逆向&#xff0c;正是由于Hash函数…

数据结构----队列和栈

小编会一直更新数据结构相关方面的知识&#xff0c;使用的语言是Java&#xff0c;但是其中的逻辑和思路并不影响&#xff0c;如果感兴趣可以关注合集。 希望大家看完之后可以自己去手敲实现一遍&#xff0c;同时在最后我也列出一些基本和经典的题目&#xff0c;可以尝试做一下。…

C# winform 三层架构 增删改查 修改数据(修改篇)

ss一.留言 本专栏三层架构已经更新了 添加 登录 显示&#xff0c;还差修改以及删除&#xff0c;本篇更新修改&#xff0c;主要操作为点击修改某一条数据&#xff0c;然后跳转页面进行修改。 二.展示 我们先看DAL代码 /// <summary>/// 修改/// </summary>/// &l…

算法基础知识——11种距离度量

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正。 前言&#xff1a;距离的作用 数据聚类&#xff1a;距离度量在聚类算法&#xff08;如K-means、层次聚类&#xff09;中用于衡量数据点之间的相似性或差异性&#xff0c;帮助确定聚类的中心和边界…

haproxy总结与实验

一、负载均衡 1.1 简述负载均衡 在高并发的业务场景下&#xff0c;解决单个节点压力过大&#xff0c;导致Web服务响应过慢&#xff0c;特别是严重的情况下导致服务瘫痪&#xff0c;无法正常提供服务的问题&#xff0c;而负载均衡的目的就是为了维护系统稳定可靠。负载均衡&…

Redis -LFU(Least Frequently Used,最少使用频率)缓存淘汰算法

在 Redis 的 LFU&#xff08;Least Frequently Used&#xff0c;最少使用频率&#xff09;缓存淘汰算法中&#xff0c;lru 字段被拆分成两部分&#xff1a;高 16 位存储 ldt&#xff08;Last Decrement Time&#xff09;&#xff0c;低 8 位存储 logc&#xff08;Logistic Coun…

Postgresql导入矢量数据

前期准备 工具&#xff1a;PgAdmin&#xff0c;postgis-bundle Postgres安装和postgis安装可以百度别的教程。 创建数据库添加扩展 如图&#xff0c;使用PgAdmin创建名为shp的数据库&#xff0c;并在扩展item中添加postgis扩展。 添加扩展方法可以用查询工具输入以下sql语句&…

LeetCode 热题 HOT 100 (024/100)【宇宙最简单版】

【哈希表】No. 0128 最长连续序列【中等】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&am…

ES6模块化简明笔记

1、什么是模块化 详见看上一篇笔记CommonJs模块化简明笔记 2、为什么需要模块化 详见看上一篇笔记CommonJs模块化简明笔记 3、导入和导出的概念 详见看上一篇笔记CommonJs模块化简明笔记 4、模块导出&#xff08;暴露&#xff09; 4.1 导出&#xff08;暴露&#xff09;方式1&…

C++ list的基本使用

目录 1.list简要介绍 2. list的构造 3. list中迭代器的使用 (1). 双向迭代器与随机访问迭代器使用区别 4.判空、获取元素个数 5. list头、尾元素的访问 6. 插入与删除操作 (1). 头插头删&#xff0c;尾插尾删 (2). 插入&#xff0c;删除与清空 (3). 交换 7. list容器迭代…

前端面试常考的HTML标签知识!!!

语义标签 标签名语义描述header网页头部网页的主要头部区域nav网页导航网页的导航链接区域footer网页底部网页的底部区域aside网页侧边栏网页的侧边栏区域section网页区块网页的独立区块 | article | 网页文章 | 网页的独立文章区域 | 字符实体 作用&#xff1a;在网页中显…

DataWhale夏令营——AIGC技术

一、任务流程 第一步——开通阿里云PAI-DSW试用 1.进入阿里云社区 阿里云社区&#xff1a;阿里云免费试用 - 阿里云 (aliyun.com) 2. 登录或者注册自己的阿里云账号&#xff1a; 3. 点击立即试用 领取成功之后关闭页面即可。 第二步——进入魔搭社区授权 魔搭社区&#…

HTML标记与文档结构

1.1 HTML标记基础 内容标记包括闭合标签和非闭合标签。 1.1.1 文本用闭合标签 闭合标签基本格式和属性&#xff1a; <标签名 属性1"属性值" >文本内容</标签名> 闭标签比开标签多一个斜杠。 1.1.2 引用内容够用自闭和标签 <标签名 属性1"…

Android逆向题解 攻防世界难度5- APK逆向

jeb打开apk 一眼就能看出来&#xff0c;没啥难度&#xff0c;这个难度还不如上一个难度4的题。 直接还原即可 public static void main(String[] args) throws NoSuchAlgorithmException {String userName "Tenshine";MessageDigest messageDigest0 MessageDigest…