C#如何获取格式并分配给变量? [英] C# how to get checkthed in form and assign to variable?

查看:87
本文介绍了C#如何获取格式并分配给变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用C#中的计时器,我的计时器是在我的类Timer.cs中创建的,在我的Form1中我有这段代码



im working with timers in C# and my timer is created in my class Timer.cs, in my Form1 i have this piece of code

private void btnCreateTimers_Click(object sender, EventArgs e)
        {
            if (rbtnNormalTimer.Checked == true)
            {
                timer = new Timer(Timer.TypeTimer.Unlimited);
            }
            else if(rbtnCountDown.Checked == true)
            {
                timer = new Timer(Timer.TypeTimer.Countdown);
            }
            else if(rbtnLimited.Checked == true)
            {
                timer = new Timer(Timer.TypeTimer.Limited);
            }

            Timers launchTimer = new Timers(timer);
            launchTimer.Show();
        }



和我的课程计时器Timer.cs我有这个:




and in my class timer Timer.cs i have this one:

public Timer TempTimer { get; set; }
    public enum TypeTimer { Unlimited, Countdown, Limited}

    public Timer()
    {
        timervalue = final * minute;

        TempTimer = new Timer();
        TempTimer.Interval = 1000;
        TempTimer.Elapsed += _TempTimerTimer_Elapsed;
        TempTimer.Start();

    }

    public Timer(TypeTimer s1) : this()
    {



我该怎么办?放在这里???????? = s1




WHAT SHOULD I PUT HERE???????? = s1

}

    public void _TempTimerTimer_Elapsed(object sender, ElapsedEventArgs e)
    {
        switch (??????)
        {
            case TypeTimer.Unlimited:
                //some code
                break;

            case TypeTimer.Countdown:
                if (second != timervalue)
                {
                    //some code
                }
                else
                {
                    TempTimer.Stop();
                }

                break;
            case TypeTimer.Limited:
                if (second != timervalue)
                {
                    //some code
                }
                else
                {
                    TempTimer.Stop();
                }

                break;
            default:
                break;
        }
    }



我应该把它放在哪里,以便在我的Form1中检查哪一个,然后在我过去的时候使用它。



i不能将swithc放在


What should I put there to get which one is checked in my Form1 and then use it in my elapsed.

i cant put the swithc inside the

public Timer(TypeTimer s1) : this()



因为我需要在我过去的时候开关



我尝试过:



我的代码是这样的:


because i need the switch in my elapsed

What I have tried:

My code was like this:

public Timer(TypeTimer s1) : this()
        {
            switch (s1)
            {
                case TypeTimer.Unlimited:
                    //some code

                case TypeTimer.Countdown:
                    if (second != timervalue)
                    {
                        //some code
                    }
                    else
                    {
                        TempTimer.Stop();
                    }

                    break;
                case TypeTimer.Limited:
                    if (second != timervalue)
                    {
                        //some code
                    }
                    else
                    {
                        TempTimer.Stop();
                    }

                    break;
                default:
                    break;
            }
        }





但是我需要切换过去而不是那里,所以我需要保存什么来自我的形式,然后做一些事情将会过去使用



But i need the switch in my elapsed and not there, so i need to save what comes from my form and then do something to get wich one will elapsed use

推荐答案

试试这个,根据你的需要定制它。





Try this, customize it as per your needs.


public class Timer
      {
          public Timer(TypeTimer s1)
          {
              System.Timers.Timer timer = new System.Timers.Timer();
              timer.Interval = 1000;
              timer.Elapsed += new ElapsedEventHandler((_sender, _e) => timer_Elapsed(s1, _e)); // passing additional information to the event.
              timer.Start();


          }

          void timer_Elapsed(object sender, ElapsedEventArgs e)
          {
              string enumValue = sender.ToString();
            // casting the enum string to an enum type
              TypeTimer s1 = (TypeTimer)Enum.Parse(typeof(TypeTimer), enumValue);
              switch (s1)
              {
                  case TypeTimer.Unlimited:
                      break;
                  case TypeTimer.Countdown:
                      break;
                  case TypeTimer.Limited:
                      break;
                  default:
                      break;
              }
          }
      }


这篇关于C#如何获取格式并分配给变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆