4

Visual Studio 2008 の場合

  • 新しい DataGridView をフォームに追加する
  • 列の編集
  • 新しい DataGridViewImageColumn を追加します
  • この列の CellStyle Builder を開きます (DefaultCellStyle プロパティ)
  • NullValue を System.Drawing.Bitmap から null に変更します
  • 実行時に DataGridView に新しい行を追加してみてください (dataGridView1.Rows.Add();)
  • 次のエラーが表示されます: System.FormatException: セルの書式設定された値の型が間違っています。

NullValue を System.Drawing.Bitmap に戻すと (以前のように)、行を追加するときに同じエラーが発生します。

デザインタイムではなく実行時に NullValue を設定すると、エラーは発生しません。(dataGridView1.Columns[0].DefaultCellStyle.NullValue = null;)

その理由を教えてください。

4

5 に答える 5

2

これはデザイナーのバグである可能性があります。.designer.cs ファイルを見回すと (NullValue を null に設定する前と後に diff を行っている可能性があります)、生成されたコードを確認できるはずです。

于 2008-09-07T10:29:34.983 に答える
2

クロノスは正しい。デザイン時に設定した後、これを .designer.cs に追加します。

dataGridViewCellStyle1.NullValue = "null";

「null」nullに変更すると、正常に動作します。DataGridViewCellStyle.NullValue set_NullValue(Object) と get_NullValue をリフレクターでチェックしましたが、文字列値でここでエラーが発生することはないと思います。

とにかくこれには注意してください。デザインタイムに設定したい場合は、.design.cs を変更することを忘れないでください。

于 2008-09-07T10:59:42.880 に答える
1

チェックボックスに文字列値を含めることはできません。IDEのプロパティダイアログでデフォルト値を設定しないでください。RowsDefaultCellStyle.Formatプロパティに「Empty」を書き込んだため、エラーが発生しました。それは自傷行為でした。修正として、チェックボックスの状態をオフに設定しようとしましたが、文字列値を削除する必要がありました。

于 2011-08-19T20:31:36.963 に答える
1

NullValue を System.Drawing.Bitmap から null に変更します

Designer で NullValue のフィールドに「null」と入力すると、文字列値「null」が指定されます。NullValue を文字列以外の値に設定する唯一の方法は、プログラムで設定するか、デザイナー コードを自分で変更することです。

于 2008-11-28T16:46:58.370 に答える
0

デザイナーから項目をフォーマット領域とデフォルトの null 値領域からまとめて削除した方がよいことがわかりました。次に、それを実際のヌルに戻します。デザイナーが生成したがらくたから離れた init セクションに設定しようとしています。

于 2010-01-25T05:39:30.563 に答える