You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio WinForms项目中表单字段更新TimeSpan值的问题

.NET Framework 4.5.2 WinForms中TimeSpan值无法通过表单控件持久化更新

我有一个Visual Studio开发的WinForms项目,环境配置如下:

  • 目标框架:.NETFramework,Version=v4.5.2
  • 运行时版本:v4.0
  • 基于Microsoft Forms构建

项目启动时通过settings.json加载初始配置,TextBox、NumericUpDown等控件可以正常读写JSON中的其他类型值,但用于SQL备份执行时间的TimeSpan字段无法通过控件修改并保存:

  • 测试过TextBox、NumericUpDown、设置为24小时格式的DateTimePicker三种控件,均能正常显示初始值(如03:00:00)
  • 但修改值后(比如改为04:00:00),一旦失去控件焦点,值会立即恢复为初始默认值,修改无法生效

相关代码片段

ApplicationSettings类定义

public class ApplicationSettings
{
    // SQL备份执行时间
    public TimeSpan BackupTime { get; set; }

    // 其他配置属性...
}

数据绑定与配置加载代码

// 加载配置文件
var settingsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.json");
var settings = JsonConvert.DeserializeObject<ApplicationSettings>(File.ReadAllText(settingsPath));

// DateTimePicker控件绑定示例(设置为24小时时间格式)
dateTimePickerBackup.Format = DateTimePickerFormat.Time;
dateTimePickerBackup.ShowUpDown = true;
dateTimePickerBackup.Value = DateTime.Today.Add(settings.BackupTime);

// TextBox控件绑定示例
textBoxBackupTime.DataBindings.Add("Text", settings, "BackupTime", true, DataSourceUpdateMode.OnPropertyChanged);

settings.json配置内容

{
  "BackupTime": "03:00:00"
}

已尝试操作

按照Oliver的建议调整代码后出现错误(暂未记录具体错误信息,后续补充细节),但核心问题仍未解决,特此求助。

内容的提问来源于stack exchange,提问作者joseph Laurello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:33:20