~这是第一次,对于任何错误或进一步的混乱,我深表歉意。 首先,我在 C# Windows 窗体上创建一个小游戏,用户输入姓名、出生日期并选择头像,我使用教科书名称、组合框出生日期,最后使用单选按钮作为图像,供用户作为图片框进行控制在我的其他形式2-我发现你使用字符串作为名称输入,但是 -我对其他表单右下角文本的组合框输入选择数据感到困惑(我应该使用字符串作为组合框输入吗?)+名称 -以及用户在 form2 中控制的图片框的单选按钮选择,因为我不希望它作为文本,所以我没有使用字符串。 ~~这对任何答案或注释都会非常有帮助。谢谢您,对于任何困惑,我们深表歉意。
如果用户输入出生日期,则该值的明显数据类型是
DateTime
。您也许还可以在较新的版本中使用 DateOnly
,但即使您这样做,您也很有可能在某个时候需要转换为 DateTime
,因为一种语言自 .NET 诞生以来就已存在,另一种语言则在很新。
如果您使用 WinForms 输入日期,那么显而易见的控件选择是
DateTimePicker
,而不是 ComboBox
。然后,用户可以在一处输入整个日期,然后您可以从 DateTime
属性获得 Value
值。
如果您坚持使用
ComboBoxes
,那么我假设您有三个 - 日、月和年各一个。如果您在设计器中填充下拉列表,那么您将添加 strings
,因此您需要首先将 Text
或 SelectedItem
转换为 int
,然后从这三个 DateTime
值。int
如果您在代码中填充下拉列表,则实际上可以首先添加
var year = Convert.ToInt32(yearComboBox.Text);
var month = Convert.ToInt32(monthComboBox.Text);
var day = Convert.ToInt32(dayComboBox.Text);
var dateOfBirth = new DateTime(year, month, day);
值,并且不需要转换,但您仍然需要从类型
int
转换 SelectedItem
。 object
请注意,
var year = (int)yearComboBox.SelectedItem;
var month = (int)monthComboBox.SelectedItem;
var day = (int)dayComboBox.SelectedItem;
var dateOfBirth = new DateTime(year, month, day);
将确保仅选择有效日期。如果您使用
DateTimePicker
,则必须确保用户不会为所选月份选择无效的日期,例如2 月 30 日。