-1

我有两种形式。form1 显示书籍数据,而 form2 用于编辑书籍数据...在 form2 中,我有自定义格式“yyyy”(仅限年份)的 datetimepicker 来更新书籍出版年份......所以当我加载表单 2 时 datetimepicker 不显示该书的出版年份,但显示的是 2012 年(当年)...

txttahun(是日期时间选择器名称)

这是我在 form2 加载并显示来自 form1 的数据时的代码

DateTime elshose;
        bool elshoseOkay;
        elshoseOkay = DateTime.TryParse(Data["tahunterbit"].ToString(), out elshose);
        if (elshoseOkay)
        {
            txttahun.CustomFormat = "yyyy";
            txttahun.Format = DateTimePickerFormat.Custom;
            txttahun.Text = elshose.Year.ToString();
        }
        this.TopMost = true;
        txtkode.Text = Data["kodebuku"].ToString();
        txtkode1.Text = Data["kodebuku"].ToString();
        txtjudul.Text = Data["judulbuku"].ToString();
        txtpengarang.Text = Data["pengarang"].ToString();
        txtkategori.Text = Data["namakategori"].ToString();
        txtpenerbit.Text = Data["penerbit"].ToString();
        //txttahun.Text = Data["tahunterbit"].ToString();
        txtstok.Text = Data["stokbuku"].ToString();
        tglter.Text = Data["tglpenerimaan"].ToString();

那么如何让 datetimepicker 显示我输入的书籍出版年份?

4

1 回答 1

0

可能在您的情况下 DateTime.TryParse 将始终失败。调试并查看您的应用程序是否到达您为其设置 Text 的行txttahun

如果您使用dateTimePicker.Text属性,则需要提供正确的日期时间字符串。否则它将失败。

因为elshose是 DateTime 对象,您可以直接将其分配为dateTimePicker1.Value

dateTimePicker1.Value = elshose;

或者

txttahun.Text = elshose.ToString();

运行下面的代码并检查你一年得到的结果。

    DateTime elshose;
    txttahun.CustomFormat = "yyyy";
    txttahun.Format = DateTimePickerFormat.Custom;
    if (DateTime.TryParse(Data["tahunterbit"].ToString(), out elshose))
    {
        txttahun.Text = elshose.ToString();
    }else
    {
       // this line only for testing....
       txttahun.Text = DateTime.Today.AddYears(-5).ToString();
    }
于 2012-05-29T10:26:10.743 回答