datagridview中的datetimepicker不允许两次输入相同的日期



你好,我正在使用c#和datagridview已经在我的应用程序中,列绑定到另一个类我要做的是在我的datagridview中嵌入一个datetimepicker,这样我就可以从中选择日期,然后将其绑定到变量并在插入数据库之前转换为正确的格式。我只在UI上工作,其他开发人员已经完成了后端代码。到目前为止我的代码是在main类

DateTimePicker dtp = new DateTimePicker();

然后点击鼠标事件

private void cliOrderStackGrid_CellClick_1(object sender, DataGridViewCellEventArgs e)
{
try
{
if (cliOrderStackGrid.Columns[e.ColumnIndex].Name == "orderDateDataGridViewTextBoxColumn" && e.RowIndex >= 0)
{
//DateTimePicker dtp = new DateTimePicker();
cliOrderStackGrid.Controls.Add(dtp);
dtp.Format = DateTimePickerFormat.Short;
Rectangle rectangle = 
cliOrderStackGrid.GetCellDisplayRectangle(e.ColumnIndex,e.RowIndex, true);
dtp.Size = new Size(rectangle.Width, rectangle.Height);
dtp.Location = new Point(rectangle.X, rectangle.Y);
dtp.TextChanged += new EventHandler(datetimepicker_textchanged);
dtp.Visible = true;

}
}
catch (Exception ex)
{
MessageBox.Show("Error in adding date in column" + ex.Message);
}


}
private void datetimepicker_textchanged(object sender, EventArgs e)
{
cliOrderStackGrid.CurrentCell.Value = dtp.Text;
}

我的问题是,如果我选择相同的日期两次,那么日期不添加到datagridview既不绑定,但如果我每次都选择新的日期,它的工作完美对不起,如果问题是不正确的问我是一个新的程序员和有限的知识。提前感谢

经过这么多天的努力,我终于找到了它的根本原因。我不能一个接一个地输入相同的日期,但如果日期不同,我可以很容易地输入它,所以基本上如果文本没有改变,那么日期就无法添加这是因为我使用的是text_changed事件处理程序,而不是我添加了

cliOrderStackGrid.CurrentCell.Value = dtp.Text;

cellClick事件,问题解决了!

最新更新