private void OnInfoChanged(object sender, EventArgs e)
        {
            _psi = new ProgramStartupInfo(txtLaunchPath.Text,
                txtArguments.Text, txtWorkDir.Text);

            PopulateFields();
        }
        public ProgramStartupInfoForm(ProgramStartupInfo psi)
            : base("TXT_PROGRAMSTARTUPINFO")
        {
            InitializeComponent();

            _psi = psi;
            PopulateFields();
        }
 private void lblInfo_LinkClicked(object sender, EventArgs e)
 {
     ProgramStartupInfoForm psif = new ProgramStartupInfoForm(_psi);
     if (psif.ShowDialog() == DialogResult.OK)
     {
         this.ProgramStartupInfo = psif.ProgramStartupInfo;
         if (InfoChanged != null)
         {
             InfoChanged(this, null);
         }
     }
 }
        public static ProgramStartupInfo FromString(string input)
        {
            ProgramStartupInfo psi = null;
            string[] data = StringUtils.ToStringArray(input, '?');

            if (data != null)
            {
                psi = new ProgramStartupInfo();

                if (data.Length > 0) psi._psi.FileName = data[0];
                if (data.Length > 1) psi._psi.Arguments = data[1];
                if (data.Length > 2) psi._psi.WorkingDirectory = data[2];
            }

            return psi;
        }