• ベストアンサー
  • 困ってます

VB2010Exのフォームデザイナーについて

VisualBasic2010Expressのフォームデザイナーについてです。 ToolStripMenuItemのItemsやDropDownItemsのコレクションを追加すると既に 登録済みのアイテムごと表示されなくなります。(毎回ではありませんが結構な 頻度で発生します。) 仕方なく同じアイテム名で登録しなおそうとすると、既にアイテム名が使用されて いる旨の警告がでます。 フォーム名 Form1/ToolStripMenuItem名MuneBarだとすると Form1.Designer.vbを確認したところ、下記の行が消えてしまっていました。 Me.MenuBar.Items.AddRange(New System.Windows.Forms.ToolStripItem() _                                    {, Me.Menu_A, Me.Menu_B, Me.Menu_C}) この現象は編集していないStatusStripにも同様の現象を及ぼします。 (StatusStrip編集時にはToolStripMenuItemに同様の現象を及ぼします。) 回避方法などございましたらご回答お願いいたします。 開発環境 ■OS・ハード情報 OS 名Microsoft Windows 7 Home Premium バージョン6.1.7601 Service Pack 1 ビルド 7601 OS 追加情報 利用不可 OS 製造元Microsoft Corporation システム名*********** システム製造元LENOVO システムモデル4334 システムの種類x64-ベース PC プロセッサIntel(R) Core(TM) i5-2410M CPU @ 2.30GHz、2301 Mhz、2 個のコア、4 個のロジカル プロセッサ BIOS バージョン/日付LENOVO 40CN03WW(V2.02), 2011/03/31 SMBIOS バージョン2.7 Windows ディレクトリC:\windows システム ディレクトリC:\windows\system32 ブート デバイス\Device\HarddiskVolume1 ロケール日本 ハードウェア アブストラクション レイヤーバージョン = "6.1.7601.17514" ユーザー名 ******** タイム ゾーン東京 (標準時) インストール済みの物理メモリ (RAM)4.00 GB 合計物理メモリ3.94 GB 利用可能な物理メモリ1.25 GB 合計仮想メモリ7.89 GB 利用可能な仮想メモリ3.17 GB ページ ファイルの空き容量3.94 GB ページ ファイルC:\pagefile.sys ■IDE情報 Microsoft Visual Studio 2010 Version 10.0.30319.1 RTMRel Microsoft .NET Framework Version 4.0.30319 RTMRel インストールされているバージョン: VB Express Microsoft Visual Basic 2010 Security Update for Microsoft Visual Basic 2010 Express - 日本語 (KB2251489) KB2251489 This security update is for Microsoft Visual Basic 2010 Express - 日本語. If you later install a more recent service pack, this security update will be uninstalled automatically. For more information, visit http://support.microsoft.com/kb/2251489.

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数706
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

VB.NET2003 の時代に画面上にたくさんコントロールを乗せた 大きなプロジェクトで何回か起こった事があります。 特定のコントロールに限らず、複数のコントロールの情報が ごっそり消えて、デザイン画面自体が開けなくなりましたね。 Micr○s○ft クオリティってこんなものでしょう。 (いや、そもそも自動で何かするパソコンの動作なんてこんなもの) フォームデザイナー自体、一度決定したら滅多に変更しない ですし、社内の不具合報告をあげて、ソースの履歴管理して、 それ以降も何回か起こりましたけど、特別問題にはなりません でした。困らなかったのでそれ以上の対処はしませんでした。 最近は起こったことがないですねぇ。 メニュー関係は特に変更などしないから、遭遇しないのかも しれませんが。 ユーザーでできる対処で思いつくのは、 ・開発マシンのスペックを上げる。(しかし提示のスペックが十分なため効果無さそう。) ・開発マシンのOSをXPにする。(根拠なし。Win7 で強化されたセキュリティ面が邪魔してる可能性を考慮。) ・開発マシンのOSをWin7 Professionalにする。(根拠なし。同上。) ・サービスパックの適用および、Windows Update をしてみる。(根拠なし。) ・アンチウィルスソフトを止めてみる。(所詮ファイルの書き込み失敗だから。) ・VSS管理してたらやめてみる。(チェックイン・アウトの負荷、遅延での書き込み失敗を考慮。) ・開発マシンを他のメーカー製に変えてみる。(根拠なし。) ・開発マシンの購入先を変えてみる。(根拠なし。) ・上のような変更で差異が出たらMicrosoftへ報告する。 ・特定のコントロールのみで起こるのか?メニュー関係のみ?ToolStrip と StatusStrip を併用した時?どのくらいの頻度?(?回/100回変更中)を詳細まで調査し、Microsoftへ報告する。 ・そもそも最初からMicrosoftの有償サポートを受ける。 ・メニューアイテムの追加を自作関数で行なう。(VB に自動で編集させない。) ・起こるものとして、起こったらバックアップファイルから復元する。 など。 ちなみに、こちらの環境は、WinXp + VisualBasic2008 Professionalです。 古いマシンが良いとは言いません。むしろ新しくしていくべきでしょう。 Professional が良いとも言いません。 が、そういう事で変わる事もあります。変わらない事もあります。 パソコンに関わる人の常識レベルの話しかできていませんがw

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 有償サポートを導入するのもなんですし、やはりバックアップしとくのが 現実的解決方法なんですね… 他の環境でも起こりうる現象だったということが確認できただけでも大きな 収穫でした。 ありがとうございました。

関連するQ&A

  • VBをアンインストールするには?

    VBをアンインストールするにはどれを削除すればいいでしょうか? プログラムと追加には ・Microsoft Visual Basic 2008 Express Edition SP1-日本語 ・Microsoft Visual C++ 2005 Redistributable ・Microsoft Windows SDK for Visual Studio 2008 SP1 Express Tools for.NET Framework -jpn ・Microsoft Windows SDK for Visual Studio 2008 SP1 Express Tools for Win32 があります。 C++なのにアイコンがVBなので これを全部アンインストールすればいいですか? よろしくお願いします。 (当方vistaです。)

  • VBでデバックするとエラーになる。

    VBでデバックすると下のようなエラーがでます ArgumentNullExceptionはハンドルされませんでした。 値を Null にすることはできません。 パラメーター名: activationContext VBを初めて日が浅いのでヘルプを読んでも意味が理解できませんでした。 なので、易しく回答してもらえると嬉しいです コードは下です Public Class Form1 'TextBox2に入力したURLをWebBrowser1で表示する Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click WebBrowser1.Navigate(TextBox2.Text) End Sub 'ブラウザ→戻るでWebBrowser1を処理する Private Sub 戻るToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 戻るToolStripMenuItem.Click WebBrowser1.GoBack() End Sub 'ブラウザ→進むでWebBrowser1を処理する Private Sub 進むToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 進むToolStripMenuItem.Click WebBrowser1.GoForward() End Sub 'ブラウザ→テキストボックスにURLを入力した時の処理 Private Sub ToolStripTextBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripTextBox1.Click WebBrowser1.Navigate(ToolStripTextBox1.Text) End Sub 'TextPageのタブをクリックした時のイベント Private Sub TabPage1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabPage1.Enter TextBox2.Visible = False Button1.Visible = False ブラウザToolStripMenuItem.Enabled = False 書式ToolStripMenuItem.Enabled = True ToolStripMenuItem1.Enabled = True End Sub 'BrowserPageのタブをクリックした時のイベント Private Sub TabPage2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabPage2.Enter TextBox2.Visible = True Button1.Visible = True ブラウザToolStripMenuItem.Enabled = True 書式ToolStripMenuItem.Enabled = False ToolStripMenuItem1.Enabled = False End Sub Private Sub 新規ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新規ToolStripMenuItem.Click TextBox1.Text = ("") End Sub Private Sub 開くToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 開くToolStripMenuItem.Click Dim selectButton As DialogResult Dim filename As String selectButton = OpenFileDialog1.ShowDialog() filename = OpenFileDialog1.FileName If selectButton = DialogResult.OK Then Try TextBox1.Text = _ My.Computer.FileSystem.ReadAllText(filename, System.Text.Encoding.Default) Me.Text = "Visual Text" & filename Catch ex As Exception End Try End If End Sub Private Sub 保存ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 保存ToolStripMenuItem.Click Dim selectButton As DialogResult Dim filename As String selectButton = SaveFileDialog1.ShowDialog() filename = SaveFileDialog1.FileName If selectButton = DialogResult.OK Then Try My.Computer.FileSystem.WriteAllText(filename, TextBox1.Text, False, System.Text.Encoding.Default) Me.Text = "Visual Text" & filename Catch ex As Exception End Try End If End Sub Private Sub フォントToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles フォントToolStripMenuItem.Click Dim fd As New FontDialog() fd.Font = TextBox1.Font fd.Color = TextBox1.ForeColor fd.MaxSize = 19 fd.MinSize = 8 fd.FontMustExist = True fd.AllowVerticalFonts = False fd.ShowColor = True fd.ShowEffects = True fd.FixedPitchOnly = False fd.AllowVectorFonts = True If fd.ShowDialog() <> DialogResult.Cancel Then 'TextBox1のフォントと色を変える TextBox1.Font = fd.Font TextBox1.ForeColor = fd.Color End If End Sub End Class

  • C# MenuStripを開いた状態にしたい

    MenuStripの中にあるToolStripMenuItemをクリックするとドロップダウンされていたものが閉じられますが、CheckOnClick = trueなメニューはクリックされてもそのまま開いた状態にできるのでしょうか 閉じるのをキャンセルする、またはプログラムから開く、どちらか実現できればと考えています。 ご存知の方いらっしゃいましたら宜しくお願いします。

  • ToolStripMenuItemのクリックイベントからTreeViewのノードを取得したい

    C#3.5を使用しています。 TreeViewのContestMenuStripのToolStripMenuItemをクリックしたときに どの(複数のノードに同じContestMenuStripをセットしています)TreeViewのノードからのToolStripMenuItemが クリックされたかを知るためにEventArgs e からTreeViewの選択されてるノードが取得したいのですが、 どうすれば良いのでしょうか? private void itemAddToolStripMenuItem_Click(object sender, EventArgs e) { var ev = (System.Windows.Forms.ToolStripItemEventArgs)e;// ToolStripItemEventArgsにキャストすればよいかと思ったのですがエラーになります・・・ }

  • VS C# のコンテキストの動作について

    VS C# のコンテキストの動作がうまくいきません、助けてください>< List Viewのアイテムを右クリックしたときに「アイテム名を表示させる」というコンテキストを表示し、それをクリックするとアイテム名を表示させるというプログラムを組んだのですが、一度目はうまく動作するのですが、その後、List Viewのアイテムのない場所を右クリックしてもコンテキストが表示されてしまいます。 何が原因なんでしょうか? 教えてください、お願いします。 以下コード 前略 private void ListView_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { ConTextMenu(); } } private void ConTextMenu() { ContextMenuStrip cms = new ContextMenuStrip(); ToolStripMenuItem menu1 = new ToolStripMenuItem(); menu1.Text = "アイテム名を表示させる"; cms.Items.AddRange(new ToolStripMenuItem[] { menu1} ); menu1.Click += new EventHandler(menu_Click); this.ContextMenuStrip = cms; } private void menu_Click(object sender, EventArgs e) { string msg = sender.ToString(); if (msg == "アイテム名を表示させる") { ListViewItem item1 = new ListViewItem(); item1 = songlist.SelectedItems[0]; iname = item1.SubItems[0].Text; MessageBox.show(iname.Tostring()); }

  • プログラムから追加したドロップダウンメニューについて

    プログラム内からドロップダウンメニューを追加して、追加されたメニューをクリックすると処理を実行するプログラムを作っています。 そこで質問なのですが ToolStripMenuItem.DropDownItems.Add でメニューをいくつか追加した後 Private Sub ToolStripMenuItem_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStripMenuItem.DropDownItemClicked Dim a As String a = e.ClickedItem.ToString End Sub で、ドロップダウンメニューに追加した項目名を取得できるのはわかったのですが、クリックされたメニューが上から何番目かを示すINDEXに相当する値を取得するにはどうしたらよいのでしょうか。調べてみたのですが、見つかりませんでした。 一つ一つ名前を照合していくしかないのでしょうか?

  • VS2013でバージョン情報ダイアログを作る

    Visual Studio 2013でプログラムを作っているときにメニューバーを配置し、 「ヘルプ=>バージョン情報」と構成し、バージョン情報をクリックすると、 別で用意したバージョン情報フォームを表示させたいのですが、 'バージョン情報 Private Sub バージョン情報ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles バージョン情報ToolStripMenuItem.Click ShowDialog(AboutBox1) End Sub としても、 追加情報:既に表示されているフォームをモーダル ダイアログ ボックスとして表示できません。showDialog を呼び出す前に、フォームの Visible プロパティを false にしてください。 と表示されてしまいます。 どのようにすればうまくいくでしょうか。よろしくお願いします。

  • スタートの全てのプログラムでVBとc++が少し違う

    ・Microsoft Visual Basic 2008 Express Edition ・Microsoft Visual C++ 2008 Express Edition の2つをインストールしました。 しかしスタートの全てのプログラムを見ると C++ の方はフォルダにはいっていて、 VBの方はそのまま(裸のまま)プログラム一覧に表示されています。 Visual C++ の方はフォルダの中身は ・Microsoft Visual C++ 2008 Express Editionのアプリケーションと ・Visual Studio Toolsフォルダです。 Visual Studio Toolsの中には Visual Studio 2008 コマンド プロンプト が入っています。 これは標準の配置ですか? もしかしたら私が知らぬ間にいじったのか気になります。 OSはvistaです。 よろしくお願いします。

  • [VC#2005] プログラムからのメニューの追加について

    Visual C#2005でウェブブラウザを作成していますが、IEの「お気に入り」のようなメニューを作成したいです。 リストデータから、ファイルを読み込み、項目を追加するまではできましたが、 リスト(CSVファイル)は下記のようになっており Yahoo,http://www.yahoo.co.jp/ goo,http://www.goo.ne.jp/ goole,http://www.google.co.jp/ これらを、メニューに追加します。 しかし、読み込みは完了しているようですが、 項目をクリックすると、一番最後の項目が実行されてしまいます。 (googleが表示されてしまいます) なぜでしょうか? いろいろと調べてみたのですが、「VC++」のものしかありません。 ソースはマイクロソフトのものを参考にしました。 private void LoadData() { string path = "urllist.txt"; string delimstr = ","; char[] delimiter = delimstr.ToCharArray(); string[] strData; string strLine; ToolStripMenuItem fileitem = new ToolStripMenuItem(); fileitem.Text = "お気に入り(&F)"; Boolean fileExsits = System.IO.File.Exists(path); if (fileExsits) { System.IO.StreamReader sr = new System.IO.StreamReader( path, System.Text.Encoding.Default); while (sr.Peek() >= 0) { strLine = sr.ReadLine(); strData = strLine.Split(delimiter); // Menustrip ToolStripMenuItem newitem = new ToolStripMenuItem(); newitem.Text = strData[0]; newitem.Click += delegate { webBrowser1.Navigate(strData[1]); }; fileitem.DropDownItems.Add(newitem); menuStrip1.Items.Add(fileitem); } } } ご指導をお願いします。

  • VB2005で、Excel 2010に罫線を描く。

    ※ VB2005で技術計算をし、[Excel 2010] に資料を作成しています。 ※ [Windows XP]+[Excel 2005] では正常に作動するコードを    [Windows 7]+[Excel 2010] 上のVB2005に移植すると、罫線の    描画部分でエラー表示が出ます。 ※ [Excel 2010] の Open コードは下記です。 ※ ファイルを開くコード    Me.Hide() xlApp = CreateObject("Excel.Application") xlBook = xlApp.workbooks.add xlSheet = xlBook.sheets("sheet1") xlBook.application.Visible = True Me.Show() MsgBox("Excelファイルは開きましたか", 0, "確認") Excel転記ToolStripMenuItem.Enabled = True ※ 何かの認識コードが不足しているのでしょうか。    教えて下さい。