不太明白,有关第二个问题:        NotifyIcon 通知栏图标 = new NotifyIcon();
        void 通知栏图标_MouseClick(object sender, MouseEventArgs e)
        {
            this.ShowInTaskbar = true;
            this.Show();
            this.WindowState = FormWindowState.Normal;
            this.Activate();
        }
        private void 记事历_Deactivate(object sender, EventArgs e)
        { 通知栏气泡(); }
        private void 记事历_SizeChanged(object sender, EventArgs e)
        { 通知栏气泡(); }        void 通知栏气泡()
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.ShowInTaskbar = false;
                通知栏图标.BalloonTipText = "最小化到托盘,重新打开请单击这里。";
                通知栏图标.BalloonTipTitle = this.Text;
                通知栏图标.ShowBalloonTip(1000);
            }
        }

解决方案 »

  1.   

    接上:        private void 记事历_Load(object sender, EventArgs e)
            {
                this.Icon = 通知栏图标.Icon = 资源文件.中国国旗;
                通知栏图标.MouseClick += 通知栏图标_MouseClick;
                通知栏图标.Text = this.Text;
                通知栏图标.Visible = true;
            }
      

  2.   

    这个意思是在任务栏里通过通知图标再显示主窗体,
    其实你hide主窗体后,在关闭新窗体时,再显示主窗体
      

  3.   

    通过Application.OpenForms集合可以找到所有打开的窗体。
      

  4.   

    主窗体:public partial class FormMain : Form
        {
            public FormMain()
            {
                InitializeComponent();
            }        //多点几次按钮试试。
            private void button1_Click(object sender, EventArgs e)
            {
                if (!FormChild.IsExist)
                {
                    FormChild fc = new FormChild();
                    fc.Show();
                }
            }
        }
    子窗体:public partial class FormChild : Form
        {
            //定义一个静态变量 做标记
            public static bool IsExist = false;
            public FormChild()
            {
                InitializeComponent();
            }
            private void FormChild_Load(object sender, EventArgs e)
            {
                IsExist = true;
            }
            private void FormChild_FormClosed(object sender, FormClosedEventArgs e)
            {
                IsExist = false;
            }
        }
      

  5.   

    太简单了这样写
    ShowDialog(this);然后在打开的窗体load事件里面
    this.Owner.Hide();然后在closed里面
    this.Owner.show();t
      

  6.   

    第一个问题:可以考虑用单例,自行百度第二个问题:
                //父窗体
                SonForm form = new SonForm(this);
                form.ShowDialog();
                //子窗体
               private Form form;
               public SonForm(Form form)
               {
                   InitializeComponent();
                   this.form = form;
                   form.Hide();
               }
               private void SonForm_FormClosed(object sender, FormClosedEventArgs e)
               {
                   form.Show();
               }
      

  7.   

      private void ShowFormInRightPanel(Form form)
            {
                form.TopLevel = false;
                this.panel2.Controls.Clear();
                this.panel2 .Controls.Add(form);
                form.Dock = DockStyle.Fill;
                form.Show();
            }
    在panel中显示 
      

  8.   

    你可以在主窗体的构造函数里ShowDialog你的子窗体(比如登录框).在登录取消后直接Close掉主窗体,否则直接往下走。public Form1(){if (new FormLogin().ShowDialog() != DialogResult.OK){
    Close();
    }InitializeComponent();
    }