質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

554閲覧

VS2008 DataGridView 1行目が表示されている時、ユーザーにて列幅が変更できない

mr_a_123

総合スコア10

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/09/12 07:17

VisualStudio2008にて、DataGridViewを表示。
1行目が表示されている時、ユーザーにて列幅が変更できない状態になっています。
(何故か、スクロールして1行目が表示されていないと列幅変更できます)

FormのShownやDataGridViewのプロパティに、
以下を設定してみましたが状況変わりません。
AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None
AllowUserToResizeColumns = True

どうすれば列幅変更できるようになるか心あたりあればお教え頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenshirou

2018/09/12 07:51 編集

このDataGridViewで何か特別なことはしていないでしょうか?例えばAutoSizeColumnsModeには何か設定されていますか?グリッドに表示されるデータはデータソースのバインドでしょうか、バインドなしで行データ追加(Rows.ADD)でしょうか?1行目のデータは2行目以降と異なるてんはありますか?
mr_a_123

2018/09/12 07:49

特別なことかどうかはわかりませんが、Frozenで列や行を固定したり、セルの境界線を消したり、色々操作してはいます。また、データはデータソースのバインドです。
kenshirou

2018/09/12 09:01

「セルの境界線を消したり」というのは、結合セルのような表示を行うためでしょうか?セル境界を消しているのは上下側ですか、左右側ですか?1行目のデータと2行目以降のデータで異なる点はありますか?
mr_a_123

2018/09/12 09:08

おっしゃるとおり、結合セルのような表示にするためです。操作は上下の境界線に対して行っています。1つ上の行と内容を比較して境界線の設定をしているので1行目に対しては処理しないようにしています(1つ前の行が無いので比較できないため)。
YAmaGNZ

2018/09/12 13:56

行っていることを少しづつ削っていき、どの処理か特定されてはどうでしょう?その部分を特定しても、根本原因がわからなければ、そのソースを提示すれば、回答が得られると思います。
kenshirou

2018/09/13 02:04

セルの境界線を消すのは、DataGridViewのCellPaintingイベントで行っていると思いますが、例えばこれをコメントアウトするとどうでしょうか?あと、DataGridViewでバインドを使用すると、AutoSizeColumnsModeにAllCellsを設定すると列幅変更に支障がでるという報告がありました。http://www.crossdrive.net/wp/archives/145(古い情報なので、VS2008にも関係あるかも知れません。)
mr_a_123

2018/09/13 02:43

有難うございます。CellPaintingは影響していませんでしたが、その流れでCellFormattingを調べたら、1行目のみ列幅指定している部分がありそれが影響しているようでした。CellFormatting内ではなく、バインドしたタイミングで列幅指定するようにしたら改善されました。何度もお付き合いいただき有難うございました。大変助かりました。
mr_a_123

2018/09/13 02:52

どうやったら、解決済みにできるのでしょう・・?また、回答いただいた方にポイントみたいなのをお送りしたりは出来ないのでしょうか。
YAmaGNZ

2018/09/13 03:00

kenshirouさんに回答してもらって解決済みとするか、自己解決とするかでしょうね
mr_a_123

2018/09/13 03:06

ご意見有難うございます。このシステム初めてでいまいち分かっていません。少し確認してみます。有難うございました。
kenshirou

2018/09/13 04:35 編集

解決されたようで嬉しいです。それでは、自己解決(自分で解決方法を投稿)として、どのように解決したかを回答欄に投稿頂けると幸いです。今後同様の問題にぶつかった人の助けとなるでしょう。
guest

回答1

0

自己解決

kenshirouさん、YAmaGNZさんのご意見を元に解決できました。
有難うございました。

CellFormattingを調べたら、1行目に対してのみ列幅指定している部分があり、それが影響しているようでした(コメントアウトしたら正常に動作)。
また、上記の列幅操作を、CellFormatting内ではなく、バインドしたタイミングで行うように変更したら現象は改善されました。

投稿2018/09/13 07:06

mr_a_123

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問