2007年8月21日火曜日

伝票入力のためのDataGridViewセルカスタマイズ

一つ二つとセルを拡張していくと大体見えてくるだろうけど、
DataGridViewでセルを拡張する際には「セル」「カラム」「編集コントロール」の3点セットが基本となるんだよね。
そして編集コントロールというのは、「原則なんらかの通常コントロールを継承」して作られているわけで。

極論で言えば、「セルの値」と「表示方法」さえクリアできればControlから派生したものであるかぎり
何でも編集コントロールとして扱うことが可能なんだよね。

これを踏まえると伝票入力への対応というのもある程度方向性が決まると思う。

UserControlを継承した編集コントロール」であり「動的に利用するUserControlが指定可能」だと楽。

この方式で実装したものが一つ前の記事にあるようなものなわけだ。
あれはカラムのプロパティで利用するUserControlを指定し、編集時にはそいつのインスタンスを編集コントロールとして
扱うようになっている(実際には編集時だけでなく表示時にもインスタンスを作成する必要があるけど)。

ま、これができるとDataGridViewの中にDataGridViewだとかCheckedListBoxセルなんてものも対応できるようになるね。
ただしアンバウンドだけどな(w

データバインディングとUserControlを継承したセルってのは相性が悪いではなく、そもそもの前提が異なるからねぇ。
バインディングの便利さを捨てて、レイアウトの表現力を増やしたと思えばいいんだけどね。

1 件のコメント: