繁体   English   中英

如何在C#中实现自动选中和未选中的单选按钮和计时器?

[英]How to implement automatically checked and unchecked radio button and timer in C#?

我需要用C#编写Windows应用程序,但是我不知道该怎么做。 我对C#编程非常了解。

我的应用程序应该怎么做?

  • 第一步 :我需要使用单选按钮或其他彩色图标来做这些图标,这些图标应随机点亮,并且必须用相应的按钮将其关闭(例如红色的radiobutton =红色按钮)。
  • 第二步 :有一个计时器,它开始计算我从点亮按钮到关闭该按钮的反射率。

我做了什么?

  • 实现单选按钮,按钮和两个标签

  • 负责每个组件单击的空方法

我正在使用哪个程序?

  • Visual Studio 2008速成版

我不知道该怎么办?

  • 如何实现计时器和设置计数以检查我的反射

  • 如何设置以随机顺序自动检查单选按钮并使用其他按钮将其关闭

  • 如何在标签上显示我的计时器

我的源代码:

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();
  1. 使用DateTime.Now记录灯打开的时间,并记录单击以打开灯的时间。 将其与时间进行比较,以获取时间流逝。
  2. 我们将您的问题理解为“如何获得随机数?”。 互联网上有很多答案。 这是一个: 如何在C#中生成一个随机的int数? 另外,看看Timer.Tick事件。
  3. 使用标签的文本属性显示经过的时间(请参阅#1)。 Convert.ToString()可能对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM