- PR -

[VS.NET2005][C#]DataGridViewMaskedTextBoxCellで日付入力

1
投稿者投稿内容
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2007-05-26 17:12
【環境】
OS:WindowsXPPro
IDE:VS.NET2005
DB:MSSQLServer2005
言語:C#
AP:Windowsアプリ

DOBONさんのこちらを参考にして、DataGridViewにMaskedTextBoxを実装し、日付入力をさせるようにしてみました。

日付カラムを持つDataSetを作成し、DataGridViewにバインドさせて、日付入力を早速試してみて、正しい日付を入力した場合は正常に動作させる事ができました。
しかし、一度入力した日付を削除して確定しようとすると、日付変換できない為に例外が発生してしまいました。

※ちなみに、MASKには「0000/00/00」。Style.Formatには「yyyy/MM/dd」を指定してます。

DataSetとバインドするDataGridViewに、MaskedTextBoxを使用した場合に、値を削除した場合はnull値をセットさせるようにする方法は無いものでしょうか?
KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-05-27 08:30
DataGridView.CellParsing イベントを使ってみてはどうでしょう?
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2007-05-28 10:59
KIさんのアドバイスを基に、以下のようなコードで目的が達成できました!!

コード:
private void dataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
 if (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewMaskedTextBoxColumn)
 {
  string text = e.Value.ToString().Replace('/',' ').TrimEnd();
  if (string.IsNullOrEmpty(text))
  {
   e.Value = DBNull.Value;
   e.ParsingApplied = true;
  }
 }
}



KIさん、有難う御座います(^^)
1

スキルアップ/キャリアアップ(JOB@IT)