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

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

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

Re[9]: datagridviewのテキストを部分的にハイライト表示


(過去ログ 95 を表示中)

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

■56609 / inTopicNo.1)  datagridviewのテキストを部分的にハイライト表示
  
□投稿者/ usako (1回)-(2011/01/21(Fri) 13:42:29)

分類:[VB.NET/VB2005 以降] 

VB2008を使用して、データベースを検索(例えば、キーワードを含むテキストを抽出)して、
検索結果(該当するテキスト)の一覧をdatagridviewで一覧表示させたいのですが、
一覧表示するときに、該当テキストに含まれるキーワードの部分を背景色を変えて
ハイライト表示させることは可能でしょうか?
グラフィックスを独自に描画という方法でもいいですので、
これが可能な場合は具体的にどのようにすればよいかご教示頂けますよう、
宜しくお願い申し上げます。
引用返信 編集キー/
■56611 / inTopicNo.2)  Re[1]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ マサヤ (227回)-(2011/01/21(Fri) 15:02:33)
http://dobon.net/vb/dotnet/datagridview/ownerdrawcell.html
こういうことではなくてですか?
引用返信 編集キー/
■56612 / inTopicNo.3)  Re[2]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ todo (99回)-(2011/01/21(Fri) 15:16:37)
2011/01/21(Fri) 15:27:42 編集(投稿者)

セルが RichTextBox なら出来るのでは?
ということでサンプルを探してみました。

RichTextBox Cell in a DataGridView
http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx
引用返信 編集キー/
■56645 / inTopicNo.4)  Re[3]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ usako (2回)-(2011/01/24(Mon) 15:30:47)
みなさま、ありがとうございました。
紹介頂いたサイトを参考に、色々と検討してみます。
また分からないことがあったら質問させてください。
うまくいったら報告します。
引用返信 編集キー/
■56741 / inTopicNo.5)  Re[4]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ usako (4回)-(2011/01/28(Fri) 16:44:00)
とりあえず、todoさんに教えて頂いたリッチテキストボックスのセルを試してみようと思い、
以下のサイトを参考にVBにコンバートを行っています。

http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx

しかし、VB.net変換後のサンプルのソースに

Implements IDataGridViewEditingControl

と記載されているものがあり、以下のビルドエラーが表示されます。
「Class 'DataGridViewRichTextBoxEditingControl' は 'Function EditingControlWantsInputKey(keyData As Keys,
dataGridViewWantsInputKey As Boolean) As Boolean' をインターフェイス 'System.Windows.Forms.IDataGridViewEditingControl'
に実装しなければなりません。」

インタフェースというのはよく分からないのですが、どのようにすればよいのでしょうか?
宜しくお願い申し上げます。
引用返信 編集キー/
■56748 / inTopicNo.6)  Re[5]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ usako (1回)-(2011/01/28(Fri) 21:38:30)
上記はFunction EditingControlWantsInputKey(...) Implements IDataGridViewEditingControl.EditingControlWantsInputKey
とすればいいことが分かりました。失礼しました。
しかし、これでとりあえずセルをリッチテキストボックスにすることはできましたが、
行の幅をテキスト折り返してすべてセルに表示させるようにしたいのですが、
DataGridViewのAutoSizeRowModeをAllSizeExeptHeadersにしてもセルは一行分の高さにしかなりません。
セルを行数分の高さにするにはどうすればよいのでしょうか?
引用返信 編集キー/
■56768 / inTopicNo.7)  Re[6]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ todo (110回)-(2011/01/31(Mon) 10:43:43)
http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx
内の "Don't work DataGridView.AutoSizeRows" にコメントがあります。
引用返信 編集キー/
■56813 / inTopicNo.8)  Re[7]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ usako (5回)-(2011/02/01(Tue) 16:03:00)
todoさま、ありがとうございました。
上記サイトの"Don't work DataGridView.AutoSizeRows" のコメントを読んでみます。
技術的なことで分からないことがありましたら、また質問させてください。
うまくいったら報告します。
引用返信 編集キー/
■56929 / inTopicNo.9)  Re[8]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ usako (2回)-(2011/02/05(Sat) 16:37:31)
上記内容をもとにセル高さの調整を色々と試してみましたが、
グリッドをスクロールさせると、下に隠れている行の表示がおかしくなりました。
具体的にどうなっているか、整理してまた報告します。
引用返信 編集キー/
■56969 / inTopicNo.10)  Re[9]: datagridviewのテキストを部分的にハイライト表示
□投稿者/ usako (6回)-(2011/02/07(Mon) 14:45:20)
試行錯誤の末、以下の方法で解決しました。
1.上記dobon.netの記事のリンクにある、以下のURLを参考にカスタムセルクラスを作成。
 http://dobon.net/vb/dotnet/datagridview/progressbar.html
 (これはプログレスバーのカスタムセルであるが、プログレスバー独自のプロパティやプログレスバー描画の部分は無視する)

2.以下のURLのリッチテキストボックスの描画イメージ部分を利用してリッチテキストのイメージを作成。
 http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx
 ここで、リッチテキストの高さはGraphics.MeasureStringで仮想的にテキストを配置した時の高さとする。
 Paintメソッドでコントロールのイメージをこのイメージを用いて描画する。

3.GetPreferredSizeメソッドで、上記リッチテキストの高さを返すようにする。

ソースは省略しますが、上記で何とかできそうです。

ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -