• ベストアンサー

DataGridViewの行ごとにヘッダを取り付けたい

DataGridViewの行ごとにヘッダを取り付けたい DataGridViewコントロールを使用しています。 出来れば(見栄えを良くするために)、図の矢印で指し示す部分に文字列を表示させたいです。 列にはカラムヘッダが存在しますが、行でも似たようなことをしたいのです。 やり方がわかる方、教えていただけませんか? よろしくお願いします。

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

  • ベストアンサー
回答No.1

URLはっときました。 デフォルトの機能で「*」印は変えれないと思いますが、 行ヘッダをに文字を入れてSelectedイベント等で機能実装したらいけると思います。

参考URL:
http://dobon.net/vb/dotnet/datagrid/rowheaderwidth.html
est_go
質問者

お礼

ご回答ありがとうございます。 dataGridView1.Rows[行番号].HeaderCell.Value = "文字列" で対応できました。

関連するQ&A

  • DataGridViewで行選択して、対応するDataTableの行を得るには?

    いつもお世話になっております。VB2005環境です。 DataGridViewの行を選択したときに、そのソースであるDataTableの同じ行のデータを参照するには、どうしたらいいでしょうか。DataTableのデータをまるごとDataGridViewに表示しているわけではないので、必要に応じて直接DataTableから取得したいです。とても初歩的な質問だと思うのですが・・・。 DataGridView1.DataSource = DataTable  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ Dim r As Integer = DataGridView1.CurrentCell.RowIndex Dim str As String str = DataTable.Rows(r)("項目名") MsgBox(str)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ このように行インデックスを取得してやってみたのですが、これだとDataGridView上でソートすると行番号が変わってしまい、DataTable側の対応する行のデータが得られません。 もう少し詳しく現状を書くと、まずCSVファイルからデータをロードして、DataTableに渡しています。そして、その内容をDataGridViewに表示しているのですが、表示する内容はデータテーブル通りの構造ではなく、表示する必要がある項目だけを選んで、1つずつカラムを追加してバインドいます。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ’自動で列を追加しないようにする DataGridView1.AutoGenerateColumns = False ’データソースを指定する DataGridView1.DataSource = DataTable ’1つ1つ順番などを変えながら列を追加していく Dim column1 As New DataGridViewTextBoxColumn() DataGridView1.Columns.Add(column1) column1.Name = "Date" column1.HeaderText = "日付" column1.DataPropertyName = "F4" Dim column2 As New DataGridViewTextBoxColumn() DataGridView1.Columns.Add(column1) column1.Name = "Locatoin" column1.HeaderText = "場所" column2.DataPropertyName = "F1" ・ ・ ・  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ こんな感じでなので、表示されていない列のデータについては、必要に応じて直接DataTableから取得したいと思います。アドバイスよろしくお願いいたします<(_ _)>

  • Visual C# の DataGridViewの行や列を増やすにはどうすればいいんでしょうか

    こちらであってるかどうかも分かりません超初心者です。 Visual C# のコントロールの一つ DataGridViewを使いたいんですが、 普通に行や列を増やすのはできるんですが、 例えば適当なテキストボックスに 4 と 7 を記入したら 4行7列の DataGridViewを作りたいと考えているんですが、どうやればいいのかまったく分かりません。 ネットで調べてもどうすればいいか分かりません ご存じの方どうか教えてください、よろしくお願いします

  • DataGridViewで列、行、セルの選択

    [環境] Windows7 Professional Visual Studio 2010 Professional お世話になります。 上記環境下にて、DataGridViewを用いたプログラムを 作っております。 そこで、タイトルの件なのですが DataGridViewの一番左(行ヘッダー)をクリックすると行選択、 一番上(列ヘッダー)をクリックすると列選択、 セルをクリックするとセル選択できるようにしたいと思っています。 しかし、DataGridViewのセル選択はSelectionModeという プロパティで制御しているようでして、以下の5種類の選択方法しかないようです。 (1) CellSelect 1 つ以上の個別のセルを選択できます。 (2) FullRowSelect 行のヘッダーまたは行内のセルをクリックすることによって行全体が選択されます。 (3) FullColumnSelect 列のヘッダーまたは列内のセルをクリックすることによって列全体が選択されます。 (4) RowHeaderSelect 行のヘッダー セルをクリックすることによって行が選択されます。個別のセルは、そのセルをクリックすることによって選択できます。 (5) ColumnHeaderSelect 列のヘッダー セルをクリックすることによって列が選択されます。個別のセルは、そのセルをクリックすることによって選択できます。 要するに、 (1)…セル選択のみ可能 (2)…行選択のみ可能(セルクリック時は行選択扱い) (3)…列選択のみ可能(セルクリック時は列選択扱い) (4)…行選択とセル選択のみ可能 (5)…列選択とセル選択のみ可能 ということなので、私の望む、 ・行選択と列選択とセル選択が可能 という制御は無理なのでしょうか。 ご存知の方いましたら、ご教示の程お願い致します。

  • C# dataGridViewの値だけクリア

    DataSorceにDataTableを指定したdataGridViewの行や列を消さずに表の中身の値だけクリアするにはどうしたらいいのでしょう。 DataTable.Clear()メソッドを使用したら列ヘッダーは残ったのですが、全ての行が行ヘッダーごと消えてしまいました。

  • DataGridViewのカラムに自動で連番

    図のようにDataGridViewの2カラム目のコンボボックスに曜日をいれてあります。 DataGridViewは入力すると行が自動で増えていきますが コンボボックスを選択した段階でカラム1に1,2,3と連番をいれたいのですが 可能でしょうか 環境 windows XP 開発 Microsoft VisualBasic Express 2010 曜日の表示はサイトの例題をはりつけています。 Dim column As New DataGridViewComboBoxColumn() 'ComboBoxのリストに表示する項目を指定する column.Items.Add("日曜日") column.Items.Add("月曜日") column.Items.Add("火曜日") column.Items.Add("水曜日") column.Items.Add("木曜日") column.Items.Add("金曜日") column.Items.Add("土曜日") '"Week"列にバインドされているデータを表示する column.DataPropertyName = "Week" '"Week"列の代わりにComboBox列を表示する DataGridView1.Columns.Insert(DataGridView1.Columns("Week").Index, column) DataGridView1.Columns.Remove("Week") column.Name = "Week"

  • 【C#】DataGridViewの最大列数について

    DataGridViewで、数万件規模のデータを表示させたいと考えています。 (希望としては、100万件できれば良いのですが、、、) 行(column)数は、3桁になると考えています。 んー、、、、がんばれば、2桁も可能かもしれません。 DataGridViewの最大表示可能列数は何列(Row)になるのでしょうか?

  • C#:DataGridViewの行取得

    C#のプログラムにて、DataGridViewを使用しています。1列目の複数のセルを選択できるようにしており、その行の番号を知りたいのですが、うまくとれません。1つであれば、 dataGridView.SelectedCells[0].RowIndex が使えるのですが、複数の場合、どのようにすればよいのでしょうか? どうか、教えてください。

  • DataGridViewがクラッシュする

    VB2005を使用しています。 DataGridViewコントロールで、以下のようなコードを実行した際に、 DataGridViewコントロール自体が大きな赤い×の表示になることがあります。 (必ず発生するわけではありません。) 'クリア DataGridView1.Columns.Clear() 'DataSetをDataGridViewに格納 DataGridView1.DataSource = dtData '空の列を追加する DataGridView1.Columns.Add("NOP", "") '最終列の幅をFillにする DataGridView1.Columns("NOP").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill '編集不可にする For i = 0 To DataGridView1.Columns.Count - 1 DataGridView1.Columns(i).ReadOnly = True Next i '行幅は変更できないようにする DataGridView1.AllowUserToResizeRows = False '行Headerを非表示にする DataGridView1.RowHeadersVisible = False 'セルの選択方法は行毎にする DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect '1行のみ選択にする DataGridView1.MultiSelect = False '追加行は表示しない DataGridView1.AllowUserToAddRows = False '列幅を自動リサイズさせる DataGridView1.AutoResizeColumns() 'DataGridViewのフォントサイズを変更する DataGridView1.Font = New Font(DataGridView1.Font.Name, 11) '行高さを自動リサイズさせる DataGridView1.AutoResizeRows() 'Headerのアライメントを中央にする DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 同時に、次のメッセージボックスが表示されます。 「アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。 [続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。 [終了]をクリックすると、アプリケーションは直ちに終了します。 オブジェクト参照がオブジェクトインスタンスに設定されていません。」 どうすればこのような現象を回避することができるのでしょうか? どうかご教授ください。

  • DataGridViewへの新規行追加について(VB2008)

    VB2008ExpressEdition,DBはAccess2003の環境にて小規模な業務アプリの開発を行っている者です。 VBを使用してまだ2週間足らずですので、初歩的な質問かもしれませんが、よろしくお願いします。 テーブルの内容を明細表示し、登録ボタンを押すとDB更新を 行うような簡単なマスタメンテナンス画面があるとします。 明細表示のため、フォーム上にDataGridViewを作成、 DataSouceプロパティを指定し、型付きDataSetをBindさせました。 AllowUserToAddRowsプロパティはTrueとし、DataGridView上への 新規行追加も可能としてあります。 このとき、プログラムを動作させ複数行新規追加を行うと、 2行目の行追加のタイミングで、 「データの登録時にエラーが発生しました。 列「〇〇」は一意であるように制約されています。 値〇は既に存在します。」 というエラーになってしまい、行追加が1行以上行えません。 新規行追加時、エラー対象とされている列はDefault値Nullと なっており、その値Nullの行を複数作成する操作なので キー重複でこのようなエラーとなっているかと思いますが、 自分としてはこのようなエラーを出さず、 画面上では明細を複数行新規追加を可能としたいのです。 (キー値は最終的に更新時にマスタから値を取得、採番してカラムにセットし登録する。 また、キー重複チェックも後でロジックを組んで行う。) このエラーチェックを行わないようにする設定、 もしくは回避方法等ありますでしょうか?

  • VB2010のDataGridViewについて

    VB初心者です。 VisualBasic2010のDataGridViewの表示についての質問です。 DataGridViewは通常、行単位でデータを管理する形式になっていますが、 行と列を逆にして操作したいのです。 古いバージョンのVBではコントロール右上のマークをクリックするとタスクが出てきてそこで設定できるようなのですが、VB2010ではタスクの中の操作がなくなっています。 もし、VB2010でも設定する方法があるのでしたら教えてください。 古いバージョンのVBで行と列の入れ換えを行っているサイトがあるので参考までに↓ http://d.hatena.ne.jp/Yamaki/20091214/1260767140

専門家に質問してみよう