从组合框和单选按钮输入数据到C# Windows窗体中新form2中的文本

问题描述 投票:0回答:1

~这是第一次,对于任何错误或进一步的混乱,我深表歉意。 首先,我在 C# Windows 窗体上创建一个小游戏,用户输入姓名、出生日期并选择头像,我使用教科书名称、组合框出生日期,最后使用单选按钮作为图像,供用户作为图片框进行控制在我的其他形式2-我发现你使用字符串作为名称输入,但是 -我对其他表单右下角文本的组合框输入选择数据感到困惑(我应该使用字符串作为组合框输入吗?)+名称 -以及用户在 form2 中控制的图片框的单选按钮选择,因为我不希望它作为文本,所以我没有使用字符串。 ~~这对任何答案或注释都会非常有帮助。谢谢您,对于任何困惑,我们深表歉意。

c# .net visual-studio windows-forms-designer
1个回答
0
投票

如果用户输入出生日期,则该值的明显数据类型是

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 日。
    

© www.soinside.com 2019 - 2024. All rights reserved.