我用c#编写了电话簿的代码,其中包含用户的姓名、手机、出生日期和照片。现在部分代码允许编辑用户的姓名和手机号码,如果用户想编辑它们,现在是编辑用户出生日期的代码,它是datepicker的形式我不知道它是什么样的喜欢。
frm.dateTimePicker1.Value = dataGridView1.CurrentRow.Cells[3].Value();
虽然 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
}
}
}