C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataGridViewに独自の列を追加したい


(過去ログ 110 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■65170 / inTopicNo.1)  DataGridViewに独自の列を追加したい
  
□投稿者/ LOC (1回)-(2013/02/08(Fri) 23:51:21)

分類:[.NET 全般] 

こんにちは。LOCと申します。

現在、Windowsフォームアプリケーションを開発しております初心者です。
-----------------------------------------
開発環境:VS2010、VB.NET
-----------------------------------------

DataGridViewにて独自の列を追加したいと考えております。

内容としては、

セルが編集モードのときはComboBoxで選択可能にし、
フォーカスが外れているときはTextBoxColumnのように選択した内容を表示したいと考えております。


TextBoxColumnを継承したカスタムコントロールを作成し、セル編集時にComboBoxを表示させるところまではできたと思うのですが、
どのようにしてComboBoxのリストにアイテムを追加したらよいか、
また選択したアイテムをTextBoxColumnのテキストに表示させたらよいのかがわかりません。


何かしらのイベント処理を追加しなければならないのでしょうか。

以上、宜しくお願い致します。
引用返信 編集キー/
■65171 / inTopicNo.2)  Re[1]: DataGridViewに独自の列を追加したい
□投稿者/ 魔界の仮面弁士 (154回)-(2013/02/09(Sat) 02:39:40)
No65170 (LOC さん) に返信
> セルが編集モードのときはComboBoxで選択可能にし、
> フォーカスが外れているときはTextBoxColumnのように選択した内容を表示したいと考えております。

標準の DataGridViewComboBoxColumn だと、何か都合が悪いのでしょうか?

(1) DisplayStyle = Nothing         / DisplayStyleForCurrentCellOnly = True
(2) DisplayStyle = DropDownButton  / DisplayStyleForCurrentCellOnly = True
(3) DisplayStyle = ComboBox        / DisplayStyleForCurrentCellOnly = True
(4) DisplayStyle = Nothing         / DisplayStyleForCurrentCellOnly = False
(5) DisplayStyle = DropDownButton  / DisplayStyleForCurrentCellOnly = False
(6) DisplayStyle = ComboBox        / DisplayStyleForCurrentCellOnly = False


> どのようにしてComboBoxのリストにアイテムを追加したらよいか、
一般的には、ComboBox1.Items.Add もしくは ComboBox1.DataSource でしょうね。


> 選択したアイテムをTextBoxColumnのテキストに表示させたらよいのかがわかりません。
編集コントロールの GetEditingControlFormattedValue メソッドを実装しましょう。

[方法 : Windows フォーム DataGridView Cells でコントロールをホストする]
http://msdn.microsoft.com/ja-jp/library/7tas5c80%28VS.80%29.aspx

引用返信 編集キー/
■65172 / inTopicNo.3)  Re[2]: DataGridViewに独自の列を追加したい
□投稿者/ LOC (2回)-(2013/02/09(Sat) 12:28:57)
No65171 (魔界の仮面弁士 さん) に返信
> 標準の DataGridViewComboBoxColumn だと、何か都合が悪いのでしょうか?
>
> (1) DisplayStyle = Nothing / DisplayStyleForCurrentCellOnly = True
> (2) DisplayStyle = DropDownButton / DisplayStyleForCurrentCellOnly = True
> (3) DisplayStyle = ComboBox / DisplayStyleForCurrentCellOnly = True
> (4) DisplayStyle = Nothing / DisplayStyleForCurrentCellOnly = False
> (5) DisplayStyle = DropDownButton / DisplayStyleForCurrentCellOnly = False
> (6) DisplayStyle = ComboBox / DisplayStyleForCurrentCellOnly = False
>

ComboBoxColumn列が多く並ぶと描画が遅くなるのでは?と思った結果
独自の列を作ったほうが良いという考えに至りました。


標準のComboBoxColumnのプロパティを変更することでやりたいことができました。
ComboBox列は常にComboBoxを表示しているものだと思い込み、プロパティを確認しておりませんでした。


魔界の仮面弁士さん、本当にありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -