- PR -

MDIフォームのMenuStripについて(VB2005)

1
投稿者投稿内容
みか
会議室デビュー日: 2007/03/07
投稿数: 12
投稿日時: 2007-03-30 19:23
こんばんは。
MDIフォームのメニューについての質問です。
状況に応じてメニュー項目のEnableを制御したいと思っています。
(例えば、保存をしたら、上書き保存を有効にするなど)
子画面が最大化されていない状態では問題ないのですが、
最大化されている状態で、
CType(MenuStrip1.Items(0), ToolStripMenuItem).DropDownItems(1).Enabled = True
のようなコードで制御しようとすると、
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
とのエラーになってしまいます。
最大化されている状態(子画面の状態に関係なく)でもエラーにならないようにするには、どうすればよいのでしょうか。
(どうして最大化されている状態だとエラーになってしまうのでしょうか)
説明が下手ですみません。
よろしくお願いします。
KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-03-30 22:46
引用:

状況に応じてメニュー項目のEnableを制御したいと思っています。
(例えば、保存をしたら、上書き保存を有効にするなど)


本題ではないですが、メモ帳などは、
保存しなくても「上書き保存」のメニューは使用可能で、
「名前を付けて保存」と同じ動作をしますよね。

引用:

CType(MenuStrip1.Items(0), ToolStripMenuItem).DropDownItems(1).Enabled = True
のようなコードで制御しようとすると、
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
とのエラーになってしまいます。


NullReferenceException のようですから、
コードのどの部分で、どのオブジェクトが null になっているのかを
まずデバッガで確認してみてはどうですか?
その上で例外発生部分のコードを提示して、
質問したほうが回答をもらいやすいと思います。
みか
会議室デビュー日: 2007/03/07
投稿数: 12
投稿日時: 2007-03-31 19:51
こんばんは。
質問が下手ですみません。
MDIで作るのは初めてで、MDIでMenuStripがどのようになるのかもわかっていませんでした。
いろいろ調べて、少しわかってきたのですが、
また、どうすればよいのかわからず、困ってしまっています。
親画面のMenuStripに「新規作成」と「開く」のメニューを作って、子画面でもその二つを作り、MergeAction.Replaceで置き換えようとしているのですが、
デザイン画面でメニュー項目を追加していくと、二つ目を追加した際に、先に作った一つ目が消えてしまいます。
MergeAction.Replaceにしていない項目は、消えることがありません。
デザイナーのコードを見ると、
Friend WithEvents file_open As System.Windows.Forms.ToolStripMenuItem
はあるのですが、
Me.file_open = New System.Windows.Forms.ToolStripMenuItem
が消えてしまっています。
何度やってもこうなってしまいます。
また下手な質問の仕方になってしまってすみません。
どうしてこうなってしまうのでしょうか。
KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-03-31 21:46
引用:

みかさんの書き込み (2007-03-31 19:51) より:

デザイン画面でメニュー項目を追加していくと、二つ目を追加した際に、先に作った一つ目が消えてしまいます。
MergeAction.Replaceにしていない項目は、消えることがありません。



同じVS2005 VBで試してみましたが、その現象は確認できませんでした。
1からフォームを作り直してやってみても同じことになりますか?

既に参考にされているかもしれませんが、

方法 : MDI ドロップダウン メニューに MenuStrip を挿入する (Windows フォーム)
みか
会議室デビュー日: 2007/03/07
投稿数: 12
投稿日時: 2007-03-31 21:48
追記です。
メニュー各項目のアイコンを無くしたら、
消えなくなりました。
再度アイコンを付けたら、
またメニューが消えて、でも今度はデザイナにはコードがちゃんと残っていて・・・。
そして今は、正常になってます。
何だか、MenuStripを触ると「不安定」になるといった状態です・・・。
みか
会議室デビュー日: 2007/03/07
投稿数: 12
投稿日時: 2007-03-31 21:54
ありがとうございます。
丁度入れ違いの書き込みで・・・。
他にもDOBON.NETさんのページを参考にしたりとかしているのですが・・・。
>1からフォームを作り直してやってみても同じことになりますか?
そうしてみます。
一応今は正常なのですが、このまま進めて、
後になってまた異常がでたら困りますし。
1

スキルアップ/キャリアアップ(JOB@IT)