-1

私は2つのフォームを持っています。form1は本のデータを表示し、form2は本のデータを編集します... form2には、書籍の発行年を更新するためのカスタム形式「yyyy」(年のみ)のdatetimepickerがあります....フォーム2をロードするとdatetimepickerはありません本の出版年を表示していますが、2012年(現在の年)を示しています...

txttahun (datetimepicker 名)

これは、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 は常に失敗します。デバッグして、アプリケーションがテキストを設定した行に来るかどうかを確認しますtxttahun

プロパティを使用dateTimePicker.Textする場合は、適切な日時文字列を指定する必要があります。そうしないと失敗します。

DateTime オブジェクトなので、elshose直接割り当てることができます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 に答える