2

私がそれを検索したときに100の結果のように見つけたので、あなたが「この質問はもう二度とない」と思うだろうと私は知っています。しかし、ここのページで説明されているようにコードを入力すると、スタートメニューのすぐ上に最小化されます。

これは私が使用するコードです(コードがトリガーされるかどうかを確認するためにメッセージボックスを追加しましたが、メッセージボックスがポップアップすることはありません):

private void Form1_Resize(object sender, EventArgs e)
{
    MessageBox.Show("Works1");
    if (WindowState == FormWindowState.Minimized)
    {
        this.Hide();
    }
}

Form1それがまたはにリンクしているかどうかわからないのでForm、私は両方を試しましたが、役に立ちませんでした。

private void Form_Resize(object sender, EventArgs e)
{
    MessageBox.Show("Works");
    if (WindowState == FormWindowState.Minimized)
    {
        this.Hide();
    }
}

ここで、をダブルクリックするとForm、この行がForm1.Designer.cs:に配置されます。

this.Load += new System.EventHandler(this.Form1_Load);

最小化イベントをトリガーするために同様の行が必要ですか?

ご覧のとおり、私は完全に迷子になっています:)

次のコードを使用して実行時にフォームを非表示にしているため、タスクバーに最小化されません。

protected override void OnLoad(EventArgs e)
{
    Visible = false; // Hide form window.
    ShowInTaskbar = false; // Remove from taskbar.
    base.OnLoad(e);
}
4

3 に答える 3

1

イベントが必要です

private void Form1_Resize(object sender, EventArgs e)
{

}

Windowsフォームデザイナでのイベントハンドラの作成

于 2013-03-11T11:18:28.790 に答える
1
  1. NotifyIconフォームにコンポーネントを追加します。プロパティ ペインでアイコンを設定していることを確認してください。そうしないと、アイコンが非表示になります。
  2. フォームのイベントのイベント ハンドラーを作成しますControl.SizeChanged。そのイベント ハンドラーに次のコードを配置します。

サンプルコード:

private void MainForm_SizeChanged(object sender, EventArgs e)
{
    if (WindowState == FormWindowState.Minimized)
        ShowInTaskbar = false;
}

次に、フォームをイベント ハンドラーで再び表示できるようにするにはNotifyIcon.MouseDoubleClick、次のコードを配置します。

private void trayIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
    WindowState = FormWindowState.Normal;
    ShowInTaskbar = true;
}
于 2013-03-11T11:34:23.920 に答える
0

あなたが知る必要がある基本的なことはイベントです。フォーム(または任意のコントロール)に特定のことが発生すると、イベントがトリガーされます。たとえば、フォームのサイズが変更されたり、読み込まれたり、クリックされたりすると、イベントが発生します。このイベントにフックして、イベントが発生したときに独自のコードを実行できます。

あなたの場合、フォームのサイズが変更された場合に、フォームを最小化するコードを実行する必要があります。したがって、メソッドをサイズ変更イベントにフックする必要があります。メソッドの名前は関係ないので、より適切な名前を使用しましょう。

private void HideWhenMinimized(object sender, EventArgs e)
{
    MessageBox.Show("Works1");
    if (WindowState == FormWindowState.Minimized)
    {
        this.Hide();
    }
}

HideWhenMinimizedメソッドをフォームのイベントにフックするResizeには、次のようにする必要があります。

this.Resize += new System.EventHandler(this.HideWhenMinimized);

Loadそのコード行をフォームのコンストラクターまたはイベントに追加すると、フォームのサイズが変更されるとすぐにコードが呼び出されます。

于 2013-03-11T11:44:40.213 に答える