如何在c#中实现自动选中和未选中的单选按钮和定时器
本文关键字:定时器 单选按钮 实现 | 更新日期: 2023-09-27 18:17:22
我需要用c#写一个Windows应用程序,但我不知道如何做一些事情。我对c#编程很陌生。
我的app应该怎么做
- 第一步:我需要从我的单选按钮或其他彩色图标,这些图标应该随机亮起来,我必须用相应的按钮关闭这个(例如红色单选按钮=红色按钮)。
- 第二步:有一个计时器,它开始计数我的反射从点亮按钮到关闭此按钮。
我做了什么?
-
实现单选按钮、按钮和两个标签
-
负责每个组件点击空方法
我用的是哪个程序
- Visual Studio 2008 Express
我不知道怎么做
-
如何实现定时器和设置计数来检查我的反射
-
如何设置单选按钮自动按随机顺序选中并与其他按钮一起关闭
-
如何在标签显示我的定时器
源代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Ling;
using System.Text;
using System.Windows.Forms;
namespace App{
public partial class Form1 : Form{
public Form1(){
InitializeComponent();
}
private void label1Click(object sender, EventArgs e){
}
private void radioButton1_CheckedChanged(object sender, EventArgs e){
}
private void radioButton2_CheckedChanged(object sender, EventArgs e){
}
private void radioButton3_CheckedChanged(object sender, EventArgs e){
}
private void GreenButton_Click(object sender, EventArgs e){
GreenButton.Backcolor = Color.gray;
}
private void RedButton_Click(object sender, EventArgs e){
RedButton.Backcolor = Color.gray;
}
private void BlueButton_Click(object sender, EventArgs e){
BlueButton.Backcolor = Color.gray;
}
private void label2Click(object sender, EventArgs e){
}
我将非常感谢每一种帮助<3
你应该用System.Diagnostics.Stopwatch
代替System.Windows.Forms.Timer
来测量反射时间。
在类级别创建一个秒表:
private Stopwatch stopwatch = new Stopwatch();
点亮单选按钮后,秒表开始计时:
stopwatch.Start();
当用户点击正确的按钮时,停止秒表并获得经过的时间:
stopwatch.Stop();
var elapsedTime = stopwatch.ElapsedMilliseconds;
同时,你应该取消选中这里的所有单选按钮:
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
然后你可以像这样把这个变量显示给用户:
<insert your label's name here>.Text = "Your time: " + elapsedTime;
我已经回答了你的第一个和第三个困难。对于第二个,这里有一个简单的方法。
首先我们需要决定何时点亮单选按钮。在用户点击开始按钮后,它可以在一段时间后被点亮。要创建此延迟,请使用System.Windows.Forms.Timer
。你可以到这里学习如何使用它。
现在在类级别创建Random
对象。这用于随机点亮单选按钮
private Random random = new Random();
在Timer.Tick
事件处理程序中,首先停止计时器,因为我们只希望它触发一次。然后你可以先生成一个0到2之间的随机数:
var randomNumber = random.Next(0, 3);
然后根据随机数,我们点亮单选按钮:
if (randomNumber == 0) {
radioButton1.Checked = true;
} else if (randomNumber == 1) {
radioButton2.Checked = true;
} else {
radioButton3.Checked = true;
}
// this is where you want to start the stopwatch!
stopwatch.Start();
- 记录灯打开的时间,记录你打开的时间点击它,使用DateTime.Now。把这些和乘以 我理解你的问题是"我怎么得到随机数?"。在那里网上有很多关于这个问题的答案。这里有一个:如何在c#中生成一个随机的int数?另外,看看计时器。Tick事件。
- 使用标签的text属性显示经过的时间(参见#1)。Convert.ToString()可能会派上用场。