none
运行程序而不显示主窗体。。即主窗体visable=false,问题是主窗体没这个属性。。。 RRS feed

  • 问题

  •  

    我在说详细点。。是这样的。我在主窗体里加入了MS Agent(AgentObjects)控件运行后会出现个类似office助手的小精灵,但是主窗体也会出现,目标是只让小精灵出现,而不显示主窗体。。。。
    2008年9月20日 7:09

答案

  • 已经解决了,在CSDN上找的方法,给大家分享下:

     

    在Program.cs中

    Code Snippet
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;

    namespace WindowsApplication1
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Form1  f = new Form1();
                f.Visible = false;

                Application.Run();
                f.Close();
            }
        }
    }

     

     

    然后在form1中写:

     public Form1()
            {
                InitializeComponent();
                AgentShow();
            }

    2008年9月20日 8:18

全部回复

  • 你好!
       实际上你可以在主窗体的构造函数中添加代码:this.Visable=false;
       但是有一个问题就是你的主窗体不可见了,你的程序看不到“X”按钮了,你的程序怎样退出,而且你既然你不想要主窗体,为什么要创建一个WinForm程序呢?直接使用那个小精灵不可以吗?我感觉你的需求有些矛盾。如果你一定要这样做,可以在别处添加一个退出的按钮。
    2008年9月20日 7:46
    版主
  • 2008年9月20日 7:57
    版主
  • 是这样的,我在小精灵上构造了一个菜单,右击小精灵会弹出菜单,有各种选项操作,想要实现的就是在程序运行是只显示小精灵,而不显示窗体,这一切操作都在小精灵那完成。

    以下是主窗体代码

          public AgentObjects.IAgentCtlCharacterEx acs;
           private void Form1_Load(object sender, EventArgs e)
            {
                AgentShow();
            }
            private void AgentShow()
            {
                axAgent1.Characters.Load("acs", (object)"Merlin.acs");
                acs= axAgent1.Characters["acs"];
                acs.Show(null);
                acs.Speak("你好,很高兴为您服务", null);
                acs.Play("Wave");
                //定义右键菜单
                acs.Commands.Add("退出", "退出", "退出", true, true);

            }
            ////////以下是定义右键的菜单的功能
            protected void axAgent1_Command(object sender, AxAgentObjects._AgentEvents_CommandEvent e)
            {
                IAgentCtlUserInput ui;
                ui = (IAgentCtlUserInput)e.userInput;
                if (ui.Name == "退出")
                {
                    acs.Speak("goodbye", null);
                    Application.ExitThread();
                }
                else
                {
                    acs.Speak("please chouse the menu", null);
                }
            }   

    2008年9月20日 8:07
  • 已经解决了,在CSDN上找的方法,给大家分享下:

     

    在Program.cs中

    Code Snippet
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;

    namespace WindowsApplication1
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Form1  f = new Form1();
                f.Visible = false;

                Application.Run();
                f.Close();
            }
        }
    }

     

     

    然后在form1中写:

     public Form1()
            {
                InitializeComponent();
                AgentShow();
            }

    2008年9月20日 8:18
  •  

    可能想做后台程序吧
    2008年9月20日 8:25