
dim str as string
dim f1 as new form1(str)
f1.showdaialog()
上記のように変数を伴って別フォームより、非表示で起動したいフォームを呼び出しております。
vb.netではアプリのロードイベントにて、me.visible =false 等で非表示にできないことをしりました。
そこで、http://dobon.net/vb/dotnet/form/hideformwithtray …を参考にいろいろと試してみましたがだめでした。
フォームを宣言する際、引数を必要としている作りであるため、上記URLの
パラメータを指定せずにApplication.Runを呼び出す方法が使えないため、
フォーム最小化、タスクバー非表示の方法を用いてみると、アプリが終了してしまいました。
次に、タイマーを使い、me.visible= falseとすると、その場合もアプリが終了してしまいました。
また、タイマーイベント内にて、フォーム最小化、タスクバー非表示の方法を試してみても、アプリが終了する結果となりました。
フォームがウィンドウ画面から確認できない状態になるとアプリが終了する仕様になってしまったのでしょうか。
また、この現象を回避し、起動時にフォームを非表示にする方法があればお教えください。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
はじめまして 通りすがりです。
こんなやり方は邪道ですか?
1.form1の画面にボタン3つ テキストボックス1つを配置します。
2.form2の画面にテキストボックス1つ、ボタン1つ 配置します。
ソースは以下のように記述します。
------------------------form1 source---------------------------------------
Public Class Form1
Private pf2 As Form2
'form2を生成
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f2 As New Form2()
'form2を見えなくする。
f2.Formdisable(False)
'form2を表示
f2.Show()
'ボタン2,3とテキスト操作用
pf2 = f2
End Sub
'form2を見えなくする
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
pf2.Formdisable(True)
End Sub
'form2を見えなくする。
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
pf2.Formdisable(False)
End Sub
'form2が見えない場合も見えないだけであることのテスト
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
pf2.SetText1 = TextBox1.Text
End Sub
End Class
--------------------------------form2 source----------------------
Public Class Form2
Public Sub Formdisable(ByVal ModeEnabled As Boolean)
If ModeEnabled = False Then
Me.Opacity = 0
Else
Me.Opacity = 100
End If
End Sub
Public WriteOnly Property SetText1()
Set(ByVal value)
TextBox1.Text = value
End Set
End Property
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
-----------------------ここまで--------------------------------
form2をクローズしてから、form1でform2を操作するとexceptionをキャッチするので(当然だけど)、
そこはコントロールしてね!
No.3
- 回答日時:
今回記述されているコードだけでは FormClosed イベントは起こらないので、
> dim str as string
> dim f1 as new form1(str)
> f1.showdaialog()
上記のコード以外にも何か記述されていますよね?
その現象が再現できる最低限のソースコードを提示していただければ、解決方法がわかるかもしれません。
ちなみに私の環境(VB2008 Express)で下記のソースコードで実行した場合、アプリが終了するということはありませんでしたのでご参考までに。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim str As String = ""
Dim frm As New Form2(str)
frm.ShowDialog()
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Minimized
Me.ShowInTaskbar = False
End Sub
No.2
- 回答日時:
ふ~ん。
そうなの?聖帝れおです。
フォームの設定はloadではアレだな。駄目。
質問者が何をしたいのか知らないが、入門本は何冊所持してます?(笑)
loadイベントより早いトコにコードを書く必要とか。さ。
コードエディターを表示し、クラス名からformを選択
メソッド名ボックスから[New]を選択
public sub new()
'この呼び出しは、,,,,
以下略
InitializeComponent()
'ここのトコにコードを書くようにする
End Sub
ま、ぼくは今、VisualBasicは休憩中だけどね。
じゃ^^/
御返事ありがとうございます。
当然、ロードイベント前に走る、NEWイベントは承知しています。
そこにもロードイベント同様、試してみたのですが、結果は変わらずでした。
No.1
- 回答日時:
Visibleプロパティを操作しただけで アプリが終了するというのは聞いたことがありませんよ
アプリ終了時の FormClosedやForemClosingなどのイベントが走っているのでしょうか
単に 見えなくなってしまっているだけなのでは ?
ATL+TABでウィンドウ切り替えなどを行ってもアプリは発見できないのでしょうか
または タスクマネージャのプロセスタブを探してみるとか ・・・
VB2002以降は 起動時のFormが閉じられた場合にアプリが終了するようになっています
これは Visibleプロパティの操作ではなく CloseメソッドまたはウィンドウのCloseボタンおよび ALT+F4などによりフォームを『閉じる』ことを言います
NotyfyIconをFormに追加して Iconプロパティに何かICONを設定しておきます
NotyfyIconのDoubleClickイベントなどで
Me.Visible = True
Me.WindowState = WindowState.Normal
などを記述しておいて見てください
こうしておけば タスクトレイのアイコンをダブルクリックするとFormが表示できますよ ^^
早速のご返答ありがとうございます。
>アプリ終了時の FormClosedやForemClosingなどのイベントが走っているのでしょうか
上記についてですが、実際やってみたところ、FormClosedイベントが走っていました。
試した方法としては、フォームのプロパティ設定により、
WindowState = WindowState.Minimized
ロードイベント内に
me.visible = false
を記述して実行しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Windows 10 Windows11タスクバーやエクスプローラー、スタートメニュー 動画全画面時にカーソルが見えない 1 2022/04/08 00:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Excelにて、ユーザーフォームで...
-
ユーザーフォームのテキストボ...
-
EXCEL VBA ユーザーフォームの...
-
エクセルのチェックボックスの...
-
Excelのユーザーフォームのテキ...
-
フォームを画面のど真ん中に表...
-
Form_Load と Form_Activate の...
-
Microsoft Formsの「個人情報や...
-
タスクバーにフォーム名を表示...
-
ExcelVBAのユーザーフォームでe...
-
ユーザーフォーム上に現在日時...
-
なぜエラーになるのでしょう?...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
検索のユーザーフォームの表示...
-
モーダルフォームとモードレス...
-
クリックイベントなのに、2回ク...
-
VBAでユーザーフォームを再表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
モーダルフォームとモードレス...
-
クリックイベントなのに、2回ク...
-
ACCESSのフォーム、開くんです...
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
ユーザーフォーム上に現在日時...
-
VB.NETでフォームロード中のエ...
-
(Excel+VBA)ユーザーフォームの...
-
フォームウィンドウを最前面に...
-
アクセス2013 フォームが...
-
コントロールの存在確認
-
Access VBA コントロールの参照...
-
ブックをCloseまたはQuitで閉じ...
おすすめ情報