如何在c#中转换编写代码更新日期选择器

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

我用c#编写了电话簿的代码,其中包含用户的姓名、手机、出生日期和照片。现在部分代码允许编辑用户的姓名和手机号码,如果用户想编辑它们,现在是编辑用户出生日期的代码,它是datepicker的形式我不知道它是什么样的喜欢。

frm.dateTimePicker1.Value = dataGridView1.CurrentRow.Cells[3].Value();
c# visual-studio winforms datepicker windows-forms-designer
1个回答
0
投票

虽然 DataGridView 可以在没有数据源的情况下使用,但最好的方法是将 DataGridView DataSource 设置为 BindingSource,并将 BindingSource DataSource 设置为 DataTable,这意味着您可以通过 BindingSource.Current 获取当前行并将其设置为 DataRow通过获取日期时间值

((DataRowView)someBindingSource.Current).Row.Field<DateTime>("columnName");

否则,对于未绑定的 DataGridView,请以字符串形式访问单元格值,而不是使用 DateTime.TryParse 来确保单元格值是 DateTime,如下所示。

namespace WinFormsApp1;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        dataGridView1.Rows.Add("Jim", "Smith", true, 
            new DateTime(2022, 8, 1));
        dataGridView1.Rows.Add("Frank", "Adams", false,
            new DateTime(2023, 9, 1));
        dataGridView1.Rows.Add("Mary", "Adams", false,
            "");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (dataGridView1.CurrentRow == null) return;

        string value = dataGridView1.CurrentRow.Cells[3].Value.ToString();

        if (DateTime.TryParse(value, out var dateTime))
        {
            dateTimePicker1.Value = dateTime;
        }
        else
        {
            // cell value is not a DateTime, decide what to do
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.