• ベストアンサー

データグリッドビューの結合セルに文字を表示させたい

VB2010にて、データグリッドビューのセル(0,0)と(1,0)を結合して、 「dimensional data」と表示させたいです。 以下のコードでセル結合まではできたのですが、 セル(0,0)に「dimensi...」と表示されてしまい、文字が2つのセルをまたがってくれません。 どうしたらよろしいでしょうか。 ご存知の方教えてください。どうぞよろしくお願いいたします。

  • ddtqp
  • お礼率68% (139/203)

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

> ペイントで右の境界線を消しただけです。 それは単純に「セル結合できてない」って言うのでは? 結合の機能はありませんので、自前でセルの文字を 描画して下さい。 セル自前描画のサンプルは WEB 上にいくつか公開されていますが、 セル結合そのもののコードは C# のが分かりやすかったです。 http://pub.ne.jp/arayan/?entry_id=2166972 CellPainting イベントを利用する際は、Graphics オブジェクトは (引数より)システムが用意したものを流用するので問題ありませんが、 new Pen ~の部分など、自前で用意した描画オブジェクトは Dispose するように改良した方がいいです。 そのあたりの処理は、以下のサンプルのほうが優秀です。 http://dobon.net/vb/dotnet/datagridview/ownerdrawcell.html ※ C# のコードでは using を使っています。

ddtqp
質問者

お礼

回答ありがとうございます。 現状を理解できました。 Graphicsで文字を描画してみます。

その他の回答 (1)

  • tissue001
  • ベストアンサー率21% (28/132)
回答No.1

datagridviewのセルが結合出来ることを初めて知りました。 私もなんどか出来ないかと考えた事がありました。 質問者様の求めている答えではありませんが、こんな方法で私は解決致しました。 データセットをデータグリッドビューのソースとしている場合、 最初から2つの列を結合してそれをデータセットにセットするという方法です。 テーブル1に 氏名とフリガナがある場合、 クエリで、フリガナ + chr(13) + chr(10) + 氏名 AS [氏名_フリガナ] のように[氏名_フリガナ]という列を作っておき、それをデータグリッドビューにセットするというのはいかがでしょうか?

ddtqp
質問者

補足

すみません。コードを載せるの忘れていました。 ペイントで右の境界線を消しただけです。 Private Sub DGV1_CellPainting(ByVal sender As Object, ByVal e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting 'セルの右側の境界線を消す If e.ColumnIndex = 0 And e.RowIndex = 0 Then e.AdvancedBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.None End If End Sub

関連するQ&A

  • データグリッドビューの表示時

    VB.NET(VS2010)で開発しています。 データグリッドビューで複数行のデータを表示する際に1レコードずつ フィールド(カラム?)の値を確認して、それによってデータグリッドビューの あるフィールドを非表示にしたり罫線を消したり又は太字にしたりすることは 可能でしょうか?

  • VB2005のデータグリッドビューとデータテーブルについて

    いつもお世話になっています。 独学でVBの勉強をしているのですが、 どうしてもわからないことがあるので教えて下さい。 現在行なおうとしていることは、 mdbからデータテーブルにレコードを取得して、 それをデータグリッドビューに設定し、 値の一部をコードで変更するということです。 DataGridView1.DataSource = DataTable1 とすれば、データテーブルのデータを データグリッドビューにて表示させることができるのですが、 コードでデータグリッドビューの値を変更すると、 データテーブルの値も一緒に変更されてしまうんです。 DataGridView1.DataSource = DataTable1.Clone とすると、今度はレコードが表示されなくなってしまって・・・ 何か良い方法がありましたら、教えて下さい。 よろしくお願いします。

  • セルの結合

    エクセルについてですが、 セルの結合は2つのセルの場合1つのセルのみ文字(数値)が入力されていればその入力文字(数値)が表示されますが、 複数だと左上端の文字(数値)だけが表示されますよね? これを、例えば横に並んだ2つのセルそれぞれに 文字が入力されているとします。 セルのみを結合して、その結合された1つのセルの中に両方の文字が表示されることって出来ないのでしょうか?

  • 結合されたセルのグラフ表示

    結合されたセルをグラフ表示しようとすると、空白セルが、ゼロ表示されてしまいグラフが細く見にくくなってしまいます。  空白セルを無視して、結合されたセルのデーターを1個のデーターとしてグラフ表示するにはどうしたらいいでしょうか。

  • 複数のセルの文字列を;(セミコロン)を介してひとつのセルに文字列として結合するには?

    エクセルで以下のような事は出来るのでしょうか? 複数のセルの文字列を;(セミコロン)を介してひとつのセルに文字列として結合するには? 例) A  B  C     D    あ  い  う  →  あ;い;う ひょっとしたら同じような質問が無いかと思い、色々と探してみたのですが、見つけることが出来ませんでした。 大量のデータを入力する必要があり、大変困っています。 ご存知の方がおられましたら、ご教授頂けるとありがたいです。 宜しくお願いいたします。

  • 結合セルのデータを結合していないセルに表示したい。

    WindowsXP、Excel2002を使用しています。 エクセルブック1のセル結合した縦横に大きなセルに入力された値を、エクセルブック2のセル結合していないひとつのセルに表示する方法を教えてください。 普通にコピー&ペーストすると、ひとつのセルにおさまらず、下のセルのデータが消えてしまいます。 よろしくお願いします!

  • エクセルのセルの結合について

    A1からA5まで結合されているせるがあり、結合解除すると「選択範囲には複数のデータ値があります。」というメッセージがでます。 そしてOKを押すとセル結合が解除され、A1からA5までの全てのセルに文字がされている状態になるのですが、これはどのように実装されているかご存知の方いらっしゃいますでしょうか? もしいらっしゃいましたらご教授願います。

  • 結合セルと単独セルの文字列マージ

    以下のような処理をしたいのですが、どのように実現すればよいかアドバイスをお願いします。 ----------------------- 以下のようなデータがあります。 ※等幅フォント以外は見にくいと思います。。。すいません。 ┌――――――┬―――――――┬――┐ |      |ニンテンドーDS| ○ | |      ├―――――――┬――┤ |      |PSP      | | | ゲーム機 ├―――――――┬――┤ |      |Wii      | ○ | |      ├―――――――┬――┤ |      |プレステ3   | | ├――――――┴―――――――┴――┤ |      |ビエラ    | | |      ├―――――――┬――┤ |      |ブラビア    | | |  テレビ  ├―――――――┬――┤ |      |Wooo      | ○ | |      ├―――――――┬――┤ |      |アクオス    | | └――――――┴―――――――┴――┘ 左端は結合セル、その他は単独セルです。 上記のとき、以下のように文字列をひとつのセルにまとめたいです。 ★以下の結果がひとつのセルに書き込まれる。 ゲーム機(ニンテンドーDS、Wii)、テレビ(Wooo) ----------------------- 結合セルのマクロでの処理が、調べたのですがいまいち理解できずでした。ヒントをいただければと思います。

  • Excelで、セルの結合をしたいんですが・・・

    Excelで文字が入ったセル同士を結合させて ひとつのセルに両方の文字を表示させたいのですが どのようにしたらできるか、わかる方がいましたら 教えてください。   東京都という文字の入ったセル   杉並区という文字の入ったセルを結合させて 東京都杉並区という文字の入ったひとつのセルを 作る方法です。よろしくお願いします。 

  • 数字が入力されているセルの結合

    組織の部門コードをつけるため以下の場合のセルの結合の方法教えて?  5階層の組織で1階層が3桁まで可能な場合。コードは15桁になります。以下のケースの結合方法をおしえていただけませんか?  A1に001 B1に002 C1に003 Dの1に004 E1に005の5つのセルを結合して001002003004005と表示したいのですが・・・・。住所などでよく使う=CONCATENATE(  )の関数なども使用しているのでうがどうもうまくいかず12345と表示されてしまいます。どなたかおしえてください