【问题标题】:How can I display the current date and time in my C# windows form application's text property?如何在我的 C# Windows 窗体应用程序的文本属性中显示当前日期和时间?
【发布时间】:2023-01-20 00:17:50
【问题描述】:

我想在我的 C# Windows 窗体应用程序的标题中实时显示当前日期和时间。

我的资源说我需要使用 datetime.now.tostring();这样做,但我不知道怎么做。有任何想法吗 ?

【问题讨论】:

  • 分享你的代码你需要什么?
  • 你是新来的 - 欢迎!好的,我要回答这个问题,但是在你下次发帖之前请努力解决第一的.然后,当您遇到特定问题时,发布您到目前为止编写的代码。阅读How to Ask,因为它是关于如何获得最有帮助的答案以及如何创建Minimal Reproducible Example 的指南。这些是您的帖子中缺少的东西,导致它收到反对票。

标签: c# winforms


【解决方案1】:

您希望使用表单的Text 属性在表单的标题栏中显示当前日期和时间。这需要在后台任务上运行一个循环,以防止延迟阻塞您的 UI 表单并使其无响应。在循环内:

在主窗口关闭时处理您的 Task 也很重要,以避免在应用程序关闭时抛出异常。


最小的例子

public partial class MainForm : Form
{
    public MainForm() => InitializeComponent();
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        _updaterTask = execDateTimeUpdater(_updaterTaskCTS.Token);
        Disposed += (sender, e) => _updaterTaskCTS.Cancel(); 
    }
    private Task? _updaterTask;
    private CancellationTokenSource _updaterTaskCTS = new CancellationTokenSource();
    private async Task execDateTimeUpdater(CancellationToken token)
    {
        await Task.Run(async () =>
        {
            bool isDelay = false;
            while(!token.IsCancellationRequested) 
            {
                try
                {
                    if (isDelay) await Task.Delay(TimeSpan.FromSeconds(1), token);
                    else BeginInvoke(() =>
                    {
                        var now = DateTime.Now;
                        Text = $"Main Form - {now.ToShortDateString()} {now.ToLongTimeString()}";
                    });
                    isDelay = !isDelay;
                }
                catch (OperationCanceledException)
                { }
            }
        });
    }
}

【讨论】:

    【解决方案2】:

    您可以使用它,它将在运行时运行:

    public partial class FormMain : Form
        {
            public FormMain()
            {
                InitializeComponent();
                this.Text = "Your title here";
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 2011-01-17
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多