DOBON.NET DOBON.NETプログラミング掲示板過去ログ

操作が複数インスタンスに渡ってしまうのを防ぐには

環境/言語:[vb.net2005]
分類:[.NET]

DataGridViewを拡張したコントロールを作ったのですが、複数のインスタンスを
作った時に、マウスでのクリックや矢印キーでの操作が全てのインスタンスに
渡ってしまいます
(矢印キーについては左右はtipsのサンプルを参考にProcessTabKeyに置き換えて
いるので何故か複数インスタンスに渡りません。上下はProcessUpKeyとDownKeyです)
(マウスクリックについては何もしていません)
これは何が原因なのでしょうか?
■No30386に返信(空虚メーカーさんの記事)
> DataGridViewを拡張したコントロールを作ったのですが、複数のインスタンスを
> 作った時に、マウスでのクリックや矢印キーでの操作が全てのインスタンスに
> 渡ってしまいます
「複数のインスタンス」というのが、何のインスタンスを指しているのか
分かりませんでした。(Form? DataSource? DataGridView?)

> (矢印キーについては左右はtipsのサンプルを
どのサンプルでしょうか?

> いるので何故か複数インスタンスに渡りません。
第三者が現象を再現可能な最低限の実験コードを、
zip 添付またはコード記載できますか?
■No30388に返信(魔界の仮面弁士さんの記事)
> ■No30386に返信(空虚メーカーさんの記事)
>>DataGridViewを拡張したコントロールを作ったのですが、複数のインスタンスを
>>作った時に、マウスでのクリックや矢印キーでの操作が全てのインスタンスに
>>渡ってしまいます
> 「複数のインスタンス」というのが、何のインスタンスを指しているのか
> 分かりませんでした。(Form? DataSource? DataGridView?)
>
>>(矢印キーについては左右はtipsのサンプルを
> どのサンプルでしょうか?
>
>>いるので何故か複数インスタンスに渡りません。
> 第三者が現象を再現可能な最低限の実験コードを、
> zip 添付またはコード記載できますか?

レスありがとうございます
連動するのは単に両方のDGVのDataSourceに同じDataSet指定してたからでした
(テストするのにめんどくさくて同じDataSet指定したのが間違いでした
同じDataSetでなければ完全に独立して動くので全然問題有りませんでした
お騒がせしてしまって申し訳有りませんでした)

ただ、DGV側に

Protected Overrides Function ProcessDataGridViewKey(ByVal e As KeyEventArgs) As Boolean
If e.KeyCode = Keys.Enter OrElse e.KeyCode = Keys.Right Then
Return Me.ProcessTabKey(e.KeyCode)
ElseIf e.KeyCode = Keys.Left Then
Return Me.ProcessTabKey(Keys.Shift Or Keys.Tab)
ElseIf e.KeyCode = Keys.Up Then
Return Me.ProcessUpKey(e.KeyCode)
ElseIf e.KeyCode = Keys.Down Then
Return Me.ProcessDownKey(e.KeyCode)
End If
Return Me.ProcessDataGridViewKey(e)
End Function

とするとやはり上下は連動して左右は連動しません
この点が釈然としなくて…

一応勘違いだったので解決済みにしておきます
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板