2

私はデータグリッドビューを持っています。dgv のデータ ソースは、オブジェクトの「ReadOnlyCollection」です。「ReadOnlyCollection」内のオブジェクトのプロパティの 1 つは、null 許容の「DateTime」です。私がやろうとしているのは、「DateTime」がnullの空白のセルを表示することですが、次のようにして、DateTime列に別の形式を適用します:

TimeOutColumn.DefaultCellStyle.Format = "MM/dd/yyyy HH:mm";

唯一の問題は、すべての null エントリを DateTime.Min 値に設定することです。

「履歴」は ReadOnlyCollection です。現在のコードは次のとおりです。

'DataGridViewTextBoxColumn TimeOutColumn = new DataGridViewTextBoxColumn();
            TimeOutColumn.DataPropertyName = "timeout";
            TimeOutColumn.HeaderText = "Time Out";                

            ddgGHistory.Columns.Add(BadgeTypeIDColumn);
            ddgGHistory.Columns.Add(EmployeeColumn);
            ddgGHistory.Columns.Add(TimeInColumn);
            ddgGHistory.Columns.Add(TimeOutColumn);

            ddgGHistory.DataSource = history

            ddgGHistory.Columns[3].DefaultCellStyle.Format = "MM/dd/yyyy HH:mm";
            ddgGHistory.Columns[3].DefaultCellStyle.NullValue = "";
4

2 に答える 2

2

DateTimeは null 非許容オブジェクトであるため、値が必要です。ただし、DateTimenullable として宣言することで nullableにすることができDateTimeます。

以下は null 非許容の datetime であり、常に値を持ちます。

 DateTime dt = new DateTime();

?ただし、型の後に追加することで、null 許容として宣言できます。

DateTime? nullable_dt = new DateTime?();

nullable_dtが に設定されていると仮定すると、nullからの値が割り当てられdatagridviewた空のセルが表示されます。nullable_dt

于 2012-08-27T18:07:14.587 に答える
0
batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value = DateTime.MinValue;

                    if ((DateTime)(batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value) == DateTime.MinValue)
                    {
                        dataGridViewTextBoxColumn12.DefaultCellStyle.Format = ("");
                    }
于 2012-10-15T04:17:34.170 に答える