none
メニュー項目に空白行表示される RRS feed

  • 質問

  • VB.Net 2005で下記のメニューを作成する。

     

      Menu1

           |

          +--Menu1.1         <--  プロパティ Visible = False

          |

         +--Menu1.2

         |

         +--Menu1.3

     

    項目Menu1.1のプロパティ Visible = False にする。

     

    実行したら下記のメニュー表示される。

      Menu1

          |

         +--Menu1.2

         |

         +--Menu1.3

     

    ただし、 Alt + ↓ でカーソルを移動すると、下記のように空白行表示される。

      Menu1

          |

         +--Menu1.3

         |

         +--

     

    解決方法をお願いいたします。

    2008年5月2日 1:54

回答

  • 先ほどのページにはC#の例はありますが、VB.NETの例はありません。

    この機会にC#からVB.NETへのコード変換を試してみてはいかがでしょうか。

    Googleで「C# VB.NET 変換」で検索するとそれらしい情報源にあたると思います。

     

    適切に変換すれば、期待通りの動きをすることは確認していますので、どうしてもできない場合はまたレスをお願いします。

    2008年5月2日 11:04
    モデレータ

すべての返信

  • Visibleプロパティを使わない方法で対処して下さい。

     

    Altキーによらず、上下のカーソルキーで再現する.NET Frameworkの不具合です。

    Visibleプロパティで非表示にするのではなく、Enabledプロパティで無効にするか、Removeで削除・Disposeして下さい。

    2008年5月2日 3:05
    モデレータ
  • ちなみに英語版のFeedbackでは「修正しない」とされています。

     

    https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=136061

    2008年5月2日 3:10
    モデレータ
  • Azuleanさん ご回答をいただき、ありがとうございました。

     

    一度 Enabledプロパティで試してみましたが、無効になった項目のサブメニューはたまに表示されてしまう不具合がありました。

     

    Menu-1

      |

      +--Menu-1.1            <-- Enabled = False

      |    |

      |    +-- Menu-1.1.1   ---\

      |    |           > たまに、表示される

      |    +-- Menu-1.1.2   ---/

      |

      +--Menu-1.2

      |

      +--Menu-1.3

           |

           +-- Menu-1.3.1

           |

           +-- Menu-1.3.2

     

    これも、.NET Frameworkの不具合ですね。

     

    そうすると、Remove/Add しかできないですね。

    2008年5月2日 4:50
  •  VB初心者1 さんからの引用

    一度 Enabledプロパティで試してみましたが、無効になった項目のサブメニューはたまに表示されてしまう不具合がありました。

    これも、.NET Frameworkの不具合ですね。

    そうです。これも不具合です。こちらの件がフィードバックに挙がっているかどうかは見ていません。(移動中なのでご容赦を)

    なお、再現条件ですが、子メニューを表示できるアイテムにカーソルを合わさせてから、グレーアウトされているメニューアイテムにポイントすることです。

     

     VB初心者1 さんからの引用

    そうすると、Remove/Add しかできないですね。

    グレーアウトするのであれば子メニューアイテムでする必要があります。

    子メニューを持つアイテムでグレーアウトしてはいけません。

     

    メニュー構成に応じてやりやすい方法で回避するしかありません。

    2008年5月2日 6:17
    モデレータ
  • こちらはバグとして認識され、アクティブのままになっています。

    いずれは修正されるかもしれませんが、期待薄かもしれません。

    http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=117127
    2008年5月2日 6:37
    モデレータ
  •  Azulean さんからの引用

    こちらはバグとして認識され、アクティブのままになっています。

    いずれは修正されるかもしれませんが、期待薄かもしれません。

    http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=117127[/quote]

     

    上記URLにの解決方法はVBのソースがありますか、こちらでやってみましたが、なかなかできないですが…

     

    2008年5月2日 8:40
  • 先ほどのページにはC#の例はありますが、VB.NETの例はありません。

    この機会にC#からVB.NETへのコード変換を試してみてはいかがでしょうか。

    Googleで「C# VB.NET 変換」で検索するとそれらしい情報源にあたると思います。

     

    適切に変換すれば、期待通りの動きをすることは確認していますので、どうしてもできない場合はまたレスをお願いします。

    2008年5月2日 11:04
    モデレータ
  •  Azulean さんからの引用

    先ほどのページにはC#の例はありますが、VB.NETの例はありません。

    この機会にC#からVB.NETへのコード変換を試してみてはいかがでしょうか。

    Googleで「C# VB.NET 変換」で検索するとそれらしい情報源にあたると思います。

     

    適切に変換すれば、期待通りの動きをすることは確認していますので、どうしてもできない場合はまたレスをお願いします。

     

    Azuleanさん

     

    VB.Netへ変換し、テストしてみたら、期待通りに動きました。

     

    ご回答ありがとうございました。

     

    2008年5月7日 7:08