- 題名: データーグリッドビューのTopLeftHeaderCellのサイズの変更の仕方
- 日時: 2010/02/20 12:59:40
- ID: 26433
- この記事の返信元:
- (なし)
- この記事への返信:
- [26434] Re[1]: データーグリッドビューのTopLeftHeaderCellのサイズの変更の仕方2010/02/20 15:15:38
- ツリーを表示
2010/02/20(Sat) 16:56:16 編集(投稿者) > TopLeftHeaderCell は狭めるか表示を消して他のセルの幅を取りたい TopLeftHeaderCell とは、下図の【左上】と書かれた固定セルを表します。 ┏━━┳━━┯━━┯━━┯━━┯━━┓ ┃左上┃列0│列1│列2│列3│列4┃ ┣━━╋━━┿━━┿━━┿━━┿━━┫ ┃行0┃0, 0│1, 0│2, 0│3, 0│4, 0┃ ┠──╂──┼──┼──┼──┼──┨ ┃行1┃0, 1│1, 1│2, 1│3, 1│4, 1┃ ┠──╂──┼──┼──┼──┼──┨ ┃行2┃0, 2│1, 2│2, 2│2, 2│4, 2┃ ┗━━┻━━┷━━┷━━┷━━┷━━┛ その幅を狭めるという事は、他の行ヘッダもまとめて狭まるという事を 意味しますが、それで構わないのでしょうか? ┏━┳━━┯━━┯━━┯━━┯━━┓ ┃LT┃列0│列1│列2│列3│列4┃ ┣━╋━━┿━━┿━━┿━━┿━━┫ ┃0┃0, 0│1, 0│2, 0│3, 0│4, 0┃ ┠─╂──┼──┼──┼──┼──┨ ┃1┃0, 1│1, 1│2, 1│3, 1│4, 1┃ ┠─╂──┼──┼──┼──┼──┨ ┃2┃0, 2│1, 2│2, 2│2, 2│4, 2┃ ┗━┻━━┷━━┷━━┷━━┷━━┛ それで良いのであれば、TopLeftHeaderCell を操作するのではなく、 RowHeaderWidth プロパティを変更すれば OK です(最小値は 4 です)。 一方、「表示を消したい」という話についてですが、これについては <RowHeaderVisible = False> <ColumnHeaderVisible = True > ┏━━┯━━┯━━┯━━┯━━┓ ┃列0│列1│列2│列3│列4┃ ┣━━┿━━┿━━┿━━┿━━┫ ┃0, 0│1, 0│2, 0│3, 0│4, 0┃ ┠──┼──┼──┼──┼──┨ ┃0, 1│1, 1│2, 1│3, 1│4, 1┃ ┠──┼──┼──┼──┼──┨ ┃0, 2│1, 2│2, 2│2, 2│4, 2┃ ┗━━┷━━┷━━┷━━┷━━┛ <RowHeaderVisible = True > <ColumnHeaderVisible = False> ┏━━┳━━┯━━┯━━┯━━┯━━┓ ┃行0┃0, 0│1, 0│2, 0│3, 0│4, 0┃ ┠──╂──┼──┼──┼──┼──┨ ┃行1┃0, 1│1, 1│2, 1│3, 1│4, 1┃ ┠──╂──┼──┼──┼──┼──┨ ┃行2┃0, 2│1, 2│2, 2│2, 2│4, 2┃ ┗━━┻━━┷━━┷━━┷━━┷━━┛ <RowHeaderVisible = False> <ColumnHeaderVisible = False> ┏━━┯━━┯━━┯━━┯━━┓ ┃0, 0│1, 0│2, 0│3, 0│4, 0┃ ┠──┼──┼──┼──┼──┨ ┃0, 1│1, 1│2, 1│3, 1│4, 1┃ ┠──┼──┼──┼──┼──┨ ┃0, 2│1, 2│2, 2│2, 2│4, 2┃ ┗━━┷━━┷━━┷━━┷━━┛ のいずれかの選択肢となります。 それとも、TopLeftHeaderCell だけを消すということで、 以下のような形で表示することを望んでいるのでしょうか? ┏━━┯━━┯━━┯━━┯━━┓ ┃列0│列1│列2│列3│列4┃ ┏━━╋━━┿━━┿━━┿━━┿━━┫ ┃行0┃0, 0│1, 0│2, 0│3, 0│4, 0┃ ┠──╂──┼──┼──┼──┼──┨ ┃行1┃0, 1│1, 1│2, 1│3, 1│4, 1┃ ┠──╂──┼──┼──┼──┼──┨ ┃行2┃0, 2│1, 2│2, 2│2, 2│4, 2┃ ┗━━┻━━┷━━┷━━┷━━┷━━┛ だとしたら、左上セルの上に Panel 等の別のコントロールを重ねて配置すれば、 見た目上は代用できるかも知れません。 そうではなく、本当に左上をくり貫きたいなら、 http://dobon.net/vb/dotnet/form/formregion.html の方法で、左上を切り取った Region を用意すれば OK です。 Region を使う場合は、ヘッダの幅/高さを固定にしておいた方が楽だと思いますが、 もしも、可変にしておきたいのであれば、RowHeadersWidthChanged/ColumnHeadersHeight の イベントを使って、Region を再作成するようにすれば実現できるかと。
■No26439に返信(たなかさんの記事) 細かい話で恐縮ですが、用語の話で少し気になったので。 > 自分が実現したかったことは三角アイコンのあるヘッダー行を消せればよかったので 左端の部分を『ヘッダー行』と表現するのは違和感があります。 上記の表現ですと、列名を表示する方のヘッダーと誤解されるかも知れません。 (列見出しにもソート順を示す三角アイコンがありますので) 今回は、話の流れや引用されていた > <RowHeaderVisible = False> > <ColumnHeaderVisible = True > などから、それが左端のヘッダーを指していることは分かりますが、個人的には、 行ヘッダー → それぞれの行のヘッダー部 → 左端の三角アイコンのセル ヘッダー行 → ヘッダーとして機能している行 → 列見出し(最上部の固定行) と連想される事が多いであろうかと思っています。 No26434 > 幅は行ヘッダ共通の No26438 > 他の行ヘッダもまとめて狭まるという事を No26439 > 三角アイコンのあるヘッダー行を消せればよかったので 気になったので、Microsoft のサイトで『ヘッダー行』という用語を探してみたところ、 図解付きの解説例としてこのような物が見つかりました。 http://office.microsoft.com/training/training.aspx?AssetID=RP011597311041&CTT=6&Origin=RP011597101041 冒頭にて、下記形式の(1)の行を『ヘッダー行』と呼んでいます。やはり列の見出しですね。 経費明細 ┏━━┯━━━━━┯━━━┓ ┃日付│ 内 容 │ 金額┃(1)ヘッダー行 ┣━━┿━━━━━┿━━━┫ ┃6/10│図書購入費│ 4,800┃ ┃6/11│運送費 │ 1,500┃(2)データ行 ┃6/20│備品消耗費│ 8,000┃ ┠──┼─────┼───┨ ┃ │ 合計:│14,300┃(3)フッター行 ┗━━┷━━━━━┷━━━┛ また、同ページの最後の方には、 「通常、ヘッダー行は、列の見出しとして使用されます。」 という表記もありました。 その反対に、『行ヘッダー』という用語の利用方法についてみてみると http://office.microsoft.com/ja-jp/access/HA100308111041.aspx 》[アクション行を移動するには] 》アクションの左にある行ヘッダーをクリックしてアクション行を選択し、 》新しい位置にドラッグします。 行選択時に使われる“左にある”ヘッダー部を指す言葉として使われています。 また、DataGridView そのものに対する解説を見ても、 http://msdn.microsoft.com/ja-jp/library/8x6w9028.aspx 『列ヘッダーをクリックすると、その列全体が選択されます。』 『行ヘッダーをクリックすると、その行全体が選択されます。』 の表現があり、やはり『行ヘッダー』とは左端のヘッダ部を指す言葉であるようです。 もっとも、このあたりは Microsoft 内部でも混乱が見られるようで、 http://office.microsoft.com/ja-jp/infopath/HA101154661041.aspx などでは、『通常、行ヘッダーは列見出しとして使用されます。』という 上記とは逆の解説も見受けられるのですけれどね。(フィードバックしておこう…) それと: > 仮面弁士さん! 詳しい図表まで書いていただきありがとうございます! こっちでは名前が省略されていて、 > Hongliangさん、魔界の仮面弁士 どうもありがとうございました! こっちでは省略されていない点もアンバランスで気になっていたり。(^^;
分類:[.NET]
お世話になります。
データーグリッドビューの左上のヘッダーセルのサイズを変更したり表示を消したいと思っています。
f.dataGridView1.TopLeftHeaderCell.Size.Width
f.dataGridView1.TopLeftHeaderCell.Visible
プロパティを参照するまではわかりましたが、プロパティが読み取り専用らしく変更ができませんでした。
どなたかわかる方いらっしゃいますか?
よろしくお願いします。