• ベストアンサー

【VB.NET】個々のFormをタスクバーから消す

 今晩は,いつも勉強させていただいております. 質問させていただきます.どうぞよろしくお願いします.  VB2008で複数のFormがあるアプリケーションを作成しておりますが, タスクバーに並んでしまうのが邪魔なので Me.ShowInTaskbar = False としてみましたが全てのFormが消えてしまい操作性が悪くなってしまいます. Dim f As New Form1() f.ShowInTaskbar = False などと個々に宣言してもタスクバーから消えませんでした...  何かよい方法がございましたら,是非ともご教授いただきたく お願い申し上げます.

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

  • ベストアンサー
  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.1

>Me.ShowInTaskbar = False >としてみましたが全てのFormが消えてしまい操作性が悪くなってしまいます. >Dim f As New Form1() >f.ShowInTaskbar = False >などと個々に... (そんなわけないと思うが)VisualStudioを使ってないの? VisualStudioを使っているならデザイナを開いて プロパティにあるShowInTaskbarをfalseにするだけですよ? 質問者さんのがどのくらいプログラム経験のある方なのか分からないのでアレですが 普通にVisual Studioを使っていれば Dim f As New Form1() f.ShowInTaskbar = False と記述する機会はそうそう無いと思うのですが‥。 Designer.vbを書き換えているのですか?

MKT_
質問者

お礼

どうもありがとうございます! >デザイナを開いてプロパティにあるShowInTaskbarをfalseにするだけ をやってみて期待通りに動作いたしました^^ 何故か上で書かせていただいたコードと少し動作が異なるようです. 助かりました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

現状で考えられるのは次の3つくらいですかね。 ・別の場所でTrueを設定しているコードがある。 ・フォームの表示で f.Show() ではなく、Form1.Show() としている。 ・f.ShowInTaskbar = False を通過していない。 「タスクバーから消えない」ということは、「ShowInTaskbarがTrueになっている」ということです。思い込みを消して、もう一度コードを見直してみてください。

MKT_
質問者

お礼

 どうもありがとうございます! Formのプロパティを変更してうまく動作いたしました. OwnerのForm2と子のForm1上でそれぞれ Me.ShowInTaskbar = False としたり Dim f As New Form1() f.ShowInTaskbar = False としましたが,いずれも全てのFormが消えるか,全部残るか,だったので 困っておりました. (コードの書き方が変だったのかもしれまえんが...orz) どうもありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ★他アプリの画面一部をコピー表示したい

    お世話になります。 さて図のように「アプリX」があって、 その画面の一部を自作ソフト「Me」画面に表示したいのです。 (WindowsでVBで作成中) いろいろ調べると、 http://dobon.net/vb/dotnet/graphics/invokepaint.html に以下のようなプログラムがありました。 'コントロールの外観を描画するBitmapの作成 Dim bmp As New Bitmap(Me.Width, Me.Height) 'キャプチャする Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height)) 'ファイルに保存する bmp.Save("C:\test\1.png") '後始末 bmp.Dispose() しかしこれはMe自身の画面であって、意味がありません。 それにファイルで保存ではなくMeに表示したいのです。 (これは多分できると思います) 最大の問題は、「アプリX」の“フォーム名”です。 http://dobon.net/vb/dotnet/form/showintaskbar.html には、「タスクバーにフォームを表示しないようにする」として、 (これもやりたいことの一つですが) 'Form1のインスタンスを作成 Dim f As New Form1() 'タスクバーに表示しない f.ShowInTaskbar = False 'フォームを表示する f.Show() とありますが、「Form1」をどうやって取得するのか書いていません。 つまり「アプリX」のフォーム名が分からないのです。 それをどうやって知ることができるでしょうか? それとも考え方が根本的におかしい? よろしくお願い申し上げます m(__)m

  • VB.NET Form1からForm2を開いたり閉じたりする方法

    VB.NET2005でForm1にあるCheckBoxをTrueにするとform2をモードレスフォームとして開き、CheckBoxをFalseにするとform2を閉じる方法がわかりません。また、form2の[×]で閉じた時にはForm1にあるCheckBoxをFalseにする方法がわかりません。 '----------------------------------- Private Sub CheckBox2_CheckedChanged ・・・   Dim f_cnt As Integer   Dim form2 As New Form2()   f_cnt = My.Application.OpenForms.Count   If CheckBox1.Checked = True Then     If f_cnt = 1 Then form1.Show() 'モードレスフォームとして表示する   Else    form2.Close() ←閉じない   End If End Sub '-----------------------------------

  • form2 から form1に戻ったとき、form1のTextboxの内容を消したくないのですが

    .NETのBasicでform1からform2に移行するため Dim F2 As New Form2() Me.Hide() F2.Show() この後、form1にもどるため Dim F1 As New Form1() F1.Show() Me.Hide() 上記のように書くと、form1のTextboxの内容が消えてしまいますよね。 これを消さずにまたform1のTextboxの編集が続けられるようにしたいのですが、どうすればいいでしょうか ただ単にform1を見えなくする方法が違うのでしょうか 初歩的な質問ですいません。

  • 「New」キーワードを使ったFormの表示について

    よろしくお願いします。 VB2005で、Windowsアプリケーションを開発しています。 Formを開く時の「New」キーワードについてお伺いしたく、投稿しました。 手許の参考書に、Form1からForm2を開くときは、 Dim Form2 As New Form2 Form2.ShowDiaolog()  とか Dim NewForm As New Form2 NewForm.Show() と記載されていたんですが、「Dim Form2 As New Form2」や「Dim NewForm As New Form2」という部分は必ず必要なのでしょうか? Form2.ShowDiaolog()だけでも開きますが、これだけだと何か支障があるのでしょうか? Form2を「New Form2」とする意味がわかりません。Newを使って、Form2のインスタンスを作成しておく、と参考書にあったのですが、Form2にボタンや、テキストボックスを配置している時点でインスタンスはできてるのでは?と思っていました。 何かルールみたいなものなのでしょうか?

  • vb.net 2008にて、アプリ起動時にフォームを非表示にする方法をお教えください。

    dim str as string dim f1 as new form1(str) f1.showdaialog() 上記のように変数を伴って別フォームより、非表示で起動したいフォームを呼び出しております。 vb.netではアプリのロードイベントにて、me.visible =false 等で非表示にできないことをしりました。 そこで、http://dobon.net/vb/dotnet/form/hideformwithtrayicon.htmlを参考にいろいろと試してみましたがだめでした。 フォームを宣言する際、引数を必要としている作りであるため、上記URLの パラメータを指定せずにApplication.Runを呼び出す方法が使えないため、 フォーム最小化、タスクバー非表示の方法を用いてみると、アプリが終了してしまいました。 次に、タイマーを使い、me.visible= falseとすると、その場合もアプリが終了してしまいました。 また、タイマーイベント内にて、フォーム最小化、タスクバー非表示の方法を試してみても、アプリが終了する結果となりました。 フォームがウィンドウ画面から確認できない状態になるとアプリが終了する仕様になってしまったのでしょうか。 また、この現象を回避し、起動時にフォームを非表示にする方法があればお教えください。

  • form2がボタンを押すと消えてしまう

    vb2010で、作成しています。form1から、form2を呼び出し、okボタンまたは、cancelボタンを押すと、無条件でform2が消えてしまいます。私がしたいのは、form2(パスワード入力ウィンドウ)でテキストボックスにパスワードを入力してokボタンを押して、それが正しい(1234)ときのみform2を消去することです。現在のところ、入力したパスワードが間違っていてもokボタンを押すと、form2は消えてしまいます。 form1側のコードとform2側のコードは以下です。お手数ですが御教示いただけると幸いです。 /////////Form1 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f As New Form2() f.TextBox1.PasswordChar = "*"c '//入力文字をマスクする If f.ShowDialog(Me) = DialogResult.OK Then If f.TextBox1.Text = "1234" Then f.Dispose() End If End If End Sub End Class /////////Form2 Public Class Form2 Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click Dim f As Form1 f = Me.Owner Me.DialogResult = DialogResult.OK End Sub Private Sub btncancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncancel.Click Dim f As Form1 f = Me.Owner Me.DialogResult = DialogResult.Cancel End Sub End Class

  • フォームを閉じる方法

    VB2005 Expressにて開発を行っております。 ログインフォーム、メニューフォーム、各フォームと複数フォームを使用 するアプリを作成中です。 そこで質問させて下さい。呼び出し元フォームを閉じてから呼び出し先 フォームを開くとするにはどのように行ったらいいのでしょうか。 下記が作成中のPGMですが、「Form1からForm2を表示」「Form2からForm1を表示」は正常に動作しますが、再度「Form1からForm2を表示」を行うと 破棄されたオブジェクトにアクセスできません。 オブジェクト名 'Form2' です。 が表示されて「f2.Show()」でエラーになってしまいます。 どなたかご存知の方がいらっしゃいましたらご教授下さい。 よろしくお願いします。 '標準モジュールで下記を宣言 Public f1 As New Form1 'ログイン画面 Public f2 As New Form2 'メニュー画面 Public f3 As New Form3 'メニュー1 Public f4 As New Form4 'メニュー2 'Form1からForm2を表示 F_Form2.StartPosition = FormStartPosition.CenterScreen F_Form2.Show() Me.Close() 'Form2を閉じてForm1を表示 F_Form1.StartPosition = FormStartPosition.CenterScreen F_Form1.Show() Me.Close()

  • 子フォームから開いたフォームと親子関係を結びたい(VB2003)

    子フォームから開いたフォームと親子関係を結びたい(VB2003) VB.NET2003についての質問です。 formMain のクラスに以下のコードを書いて実行させると、form1がformMainの子フォームとして開きます 下記は、「form1」を「formMain」の子フォームとして開くコードです。 (formMainクラス内のコードです)   ------------------------------   Dim f As New form1   Me.IsMdiContainer=True   f.MdiParent=Me   f.Show   ------------------------------ form1には、form2を開くボタンが用意されています。 質問内容は、このform2を、formMainの子フォームとして開くにはどうすればよいか、ということです。 ためしに、form1クラスに以下のコードを書いて実行させたところ、 「formMainは型であるため、式として利用することができない」というエラーメッセージが出てしまいました。   ------------------------------   Dim f As New form2   f.MdiParent = formMain   f.Show()   ------------------------------ 以上、よろしくお願い致します。

  • Form1.vbをイベントなしで動作させるには?

    VB2005初心者で困っています。 Menu.vbとForm1.vb, Form2vb, Form3.vb・・・を作り、Menu.vbのButton1_ClickでForm1.Show()としてForm1.vbに移行し、次にForm1のButton1_clickイベントでExcelからDataを読み込んでGraphを書かせています。(この時は問題なく動作しています) これを、Form1に移行したらすぐにGraphを表示しようとして、Form1.vbの Public Class Form1 Private Sub Button_Clic(Byval sender As System・・・・・)Handles Button1.click   Dim g As Graphics   ・・・・ を変更して、  Private Sub Form1_Load(Byval sender As System・・・・)Handles MyBase.load Me.Show() Dim g As Graphics   ・・・・ と、しましたが、一瞬Graphは表示しますが、すぐに消えます。 また、罫線はまったく表示しません。 Button_ClickイベントなしでForm1を動かすにはどうすればよいのでしょうか?

  • Public 定数が認識されない

    vb2010を使用しています。form1でPublic Const PASS_WORD As String = "12345"と宣言します。form1から呼び出したウィンドウform2では、次のようなコードです。 Public Class form2 Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles btnOK.Click Dim f As form1 f = Me.Owner If Me.TextBox1.Text = PASS_WORD Then Me.DialogResult = DialogResult.OK End If End Sub End Class このとき「PASS_WORDは宣言されていません。」というエラーが発生します。form1でPublicで宣言してるので、なぜこのエラーが出るのかわかりません。どなたか御教示いただけると幸いです。

このQ&Aのポイント
  • ブラザー製品DCP-926Nで両面印刷ができず、内部に用紙が詰まる問題が発生しています。手差しで厚紙を送ってもカスが取れない状況です。
  • お使いの環境はWindows10で無線LAN接続されており、電話回線はISND回線です。
  • 詳細な経緯や試したこと、エラーメッセージ等の情報がないため、原因の特定が難しいですが、解決策をお伝えします。
回答を見る