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

わんくま同盟

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

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

ツリー一括表示

DataGridViewの挙動がおかしい /五郎 (19/07/12(Fri) 15:14) #91605
Re[1]: DataGridViewの挙動がおかしい /omg (19/07/12(Fri) 19:09) #91608
Re[1]: DataGridViewの挙動がおかしい /魔界の仮面弁士 (19/07/12(Fri) 22:11) #91609
  └ Re[2]: DataGridViewの挙動がおかしい /五郎 (19/07/12(Fri) 22:17) #91610
    ├ Re[3]: DataGridViewの挙動がおかしい /魔界の仮面弁士 (19/07/13(Sat) 12:32) #91611
    └ Re[3]: DataGridViewの挙動がおかしい /omg (19/07/13(Sat) 13:38) #91612


親記事 / ▼[ 91608 ] ▼[ 91609 ]
■91605 / 親階層)  DataGridViewの挙動がおかしい
□投稿者/ 五郎 (1回)-(2019/07/12(Fri) 15:14:02)

分類:[.NET 全般] 

VB.NETを使っています。
DataGridViewを3つに使用したいのですが、

DataGridView1を新規作成し、何かデータをバインドします。
するとデフォルト設定のままで、データをクリックで選択することができ、スクロールバーも表示されます。

これをコピーし、DataGridView2を生成します。
すると、これもDataGridView1と同様にセルを選択したり、スクロールバーを動かすことができます。

しかし、更にコピーしDataGridView3を生成すると
なぜかこれはこれまでのようにセルを選択したり、スクロールバーを使うことができません。

次にまたコピーし、DataGridView4を生成すると1や2のように操作することができます。

DataGridView3に問題があるのではないかと思い、
コード内を検索しましたが特に何も処理は見つかりませんでした。

仕方なく、DataGridView3が呪われているのだろうと思い、
DataGridView3を削除して、DataGridView4を使おうとすると
これもまた操作不可能となりました。

そのため、仕方なくDataGridView3を小さくして隅の置いておき
DataGridView1,2,4を使っています。

なぜ、3つめのDataGridViewだけこのような挙動をするのでしょうか?

[ □ Tree ] 返信 編集キー/

▲[ 91605 ] / 返信無し
■91608 / 1階層)  Re[1]: DataGridViewの挙動がおかしい
□投稿者/ omg (1回)-(2019/07/12(Fri) 19:09:24)
不思議ですね。
ところで、VSと.Net Frameworkは何を使っていますか?

> しかし、更にコピーしDataGridView3を生成すると
> なぜかこれはこれまでのようにセルを選択したり、スクロールバーを使うことができません。

使えない、とは具体的にどのようになるのでしょうか?
各DataGridViewの親は何ですか?
(WinFormアプリと仮定して、Form上か、何らかのコンテナ上か)

DataGridView3のデータはバインドしているのでしょうか?
他のGridと同じデータをバインドしている訳ではないですよね?

[ 親 91605 / □ Tree ] 返信 編集キー/

▲[ 91605 ] / ▼[ 91610 ]
■91609 / 1階層)  Re[1]: DataGridViewの挙動がおかしい
□投稿者/ 魔界の仮面弁士 (2233回)-(2019/07/12(Fri) 22:11:16)
No91605 (五郎 さん) に返信
> しかし、更にコピーしDataGridView3を生成すると
> なぜかこれはこれまでのようにセルを選択したり、スクロールバーを使うことができません。

たとえば、データバインドした DataGridView を、TabPage 内に配置していた場合、
そのような状態になることがあります。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=7749&KLOG=19
http://bbs.wankuma.com/index.cgi?mode=al2&namber=5245&KLOG=15
[ 親 91605 / □ Tree ] 返信 編集キー/

▲[ 91609 ] / ▼[ 91611 ] ▼[ 91612 ]
■91610 / 2階層)  Re[2]: DataGridViewの挙動がおかしい
□投稿者/ 五郎 (3回)-(2019/07/12(Fri) 22:17:47)
ありがとうございます。

ただ、Tabpageは使っておらず、
DataGridView はそのままフォームの上に配置してあります。

> 使えない、とは具体的にどのようになるのでしょうか?
具体的に、と言われても
> セルを選択したり、スクロールバーを使うことができません。
これ以上具体的な説明はできないのですが・・・

> DataGridView3のデータはバインドしているのでしょうか?

DataGridView3のデータはDataGridView3にしかバインドしていません
[ 親 91605 / □ Tree ] 返信 編集キー/

▲[ 91610 ] / 返信無し
■91611 / 3階層)  Re[3]: DataGridViewの挙動がおかしい
□投稿者/ 魔界の仮面弁士 (2234回)-(2019/07/13(Sat) 12:32:21)
No91610 (五郎 さん) に返信
> これ以上具体的な説明はできないのですが・・・
再現性のある小さなサンプルプロジェクトを作って公開することはできますか?


No91605 (五郎 さん) に返信
> DataGridView3を削除して、DataGridView4を使おうとすると
> これもまた操作不可能となりました。
> そのため、仕方なくDataGridView3を小さくして隅の置いておき
> DataGridView1,2,4を使っています。

Form の Load イベントで
 Dim nm3 As String = DataGridView3.Name
 Dim nm4 As String = DataGridView4.Name
 Dim dgv As DataGridView = DataGridView3
Me.DataGridView3 = Me.DataGridView4
 Me.DataGridView4 = dgv
 Me.DataGridView3.Name = nm4
 Me.DataGridView4.Name = nm3
のようにして、参照している 3 と 4 のインスタンスとコントロール名を入れ替えた場合、
問題が起きるコントロールも入れ替わりますか?

[パターン1] 隅のある旧3 はスクロール不能のまま、利用中の旧4 もがスクロール不能になる。
[パターン2] 隅にある旧3 が正常化し、その逆に、利用中の旧4 がスクロール不能になる。
[パターン3] 隅のある旧3 はスクロール不能のままで、利用中の旧4 も変わらず正常動作のまま。
[パターン4] いずれのコントロールも正常に使えるようになる。
[パターン5] 新たな問題が発生する。

※インスタンスに対する初期設定の問題なのか、それともコードの問題なのかを切り分けるため。
[ 親 91605 / □ Tree ] 返信 編集キー/

▲[ 91610 ] / 返信無し
■91612 / 3階層)  Re[3]: DataGridViewの挙動がおかしい
□投稿者/ omg (2回)-(2019/07/13(Sat) 13:38:08)
2019/07/13(Sat) 13:40:47 編集(投稿者)

>>使えない、とは具体的にどのようになるのでしょうか?
> 具体的に、と言われても
>>セルを選択したり、スクロールバーを使うことができません。
> これ以上具体的な説明はできないのですが・・・

なるほど。DataGridViewのEnabled = False時のような状態でしょうか?
※DataGridViewのEnabled = Falseの時は、行がグリッドに収まらない時でも
 スクロールバーのスライダは表示されません。
 スクロールバーのスライダが表示されているのに操作できないのであれば、
 これとは違う状況かも知れません。

デザイナ上ではDataGridView3のEnabledはTrueでしょうか?
また、フォームが開いた時にでも、DataGridView3のEnabledがどうなっているか、
確認できますか?


ところで、VSやFrameworkのバージョンは何でしょうか?
古いものだとDataGridViewには不具合があるみたいです。
(どんな不具合があって、どのバージョンで修正された、とかは調べないと分かりませんが。)
[ 親 91605 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -