none
Proyecto Windows Forms C# con mismo comportamiento que VB.NET RRS feed

  • Pregunta

  • Para Proyecto Windows Forms C# como VB.NET hay diferencias.
    En VB.NET tenemos en las propiedades del proyecto Windows Forms:


    Formulario de Inicio: Login
    Ver configuracion de windows: app.manifest
    Habilitar marco de trabajo de la aplicación

    Habiltiar estilos visuales XP
    Convertir app de instancia unica
    Guardar my.settings al cerrar

    Modo de autenticación: Windows
    Modo de apagado: al cerrar el ultimo formulario
    Pantalla de presentación: Ninguno

    Eventos de aplicación:

    ' Los siguientes eventos están disponibles para MyApplication:
        ' Inicio: Se genera cuando se inicia la aplicación, antes de que se cree el formulario de inicio.
        ' Apagado: Se genera después de haberse cerrado todos los formularios de aplicación.  Este evento no se genera si la aplicación termina de forma anómala.
        ' UnhandledException: Se genera si la aplicación encuentra una excepción no controlada.
        ' StartupNextInstance: Se genera cuando se inicia una aplicación de instancia única y dicha aplicación está ya activa.
        ' NetworkAvailabilityChanged: Se genera cuando se conecta o desconecta la conexión de red.


    Hay un fichero Application.myapp

    <MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <MySubMain>true</MySubMain>
      <MainForm>Login</MainForm>
      <SingleInstance>true</SingleInstance>
      <ShutdownMode>1</ShutdownMode>
      <EnableVisualStyles>true</EnableVisualStyles>
      <AuthenticationMode>0</AuthenticationMode>
      <SaveMySettingsOnExit>true</SaveMySettingsOnExit>
    </MyApplicationData>


    Cuál sería el equivalente para tener lo mismo con un proyecto Windows Forms C# ?
    miércoles, 7 de agosto de 2019 9:25

Todas las respuestas

  • Puse algo así:

     static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                var f = new Portal.Windows.Common.UI.FrmLogin();
                f.Show();
                Application.Run();
            }


    En FrmLogin

       private void FrmLogin_Load(object sender, EventArgs e)
            {
                try
                {
                    var f = new FrmAvisoLogin();
                    f.Show();
                    this.Close();
                    return;
                }
                catch (Exception ex)
                {
                    DevExpress.XtraEditors.XtraMessageBox.Show("Error Login: " + ex.Message);
                }

    En FrmAvisoLogin

     private void FrmAviso_Load(object sender, EventArgs e)
    {
                var fPortal = new Portal.Windows.Common.UI.FrmPortal(Sede);
                fPortal.SetUsuario(usuarioLogueado);
                fPortal.Show();
                this.Close();
                return;

    FrmPortal
       this.BtnSalir.Click += (s, e) =>

      try
                                    {
                                        this.frmProdTel.Close();
                                    }
                                    catch (Exception ex)
                                    {
                                        // TODO LOG !!! ***********************
                                        var msg = ex.Message;
                                    }
                                    try
                                    {
                                        this.LoginProdTelefonica.Close();
                                    }
                                    catch (Exception ex)
                                    {
                                        // TODO LOG !!! ***********************
                                        var msg = ex.Message;
                                    }
                                    theForm.Close();




    miércoles, 7 de agosto de 2019 10:23
  • //  System.InvalidOperationException: Colección modificada; puede que no se ejecute la operación de enumeración.
                                    // Parece que lanza el FormClosing de ProdTelefonica
                                    //                             en System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()
                                    //en System.Windows.Forms.Application.ExitInternal()
                                    //en System.Windows.Forms.Application.Exit(CancelEventArgs e)
                                    //en System.Windows.Forms.Application.Exit()
                                    //en Portal.Windows.Common.FormPortalLogicBase.< DefinirEventos > b__189_12(Object s, EventArgs e) en C:\Dev\Main\Apps\Internas\Portal\Core\Windows.Common\Logica\FormPortalLogicBase.InitComun.cs:línea 467
                                    try
                                    {
                                        Application.Exit();
                                    }
                                    catch (Exception ex)
                                    {
                                        // TODO LOG !!! ***********************
                                        var msg = ex.Message;
                                        Environment.Exit(0);
                                    }
    • Propuesto como respuesta eRiver1 miércoles, 7 de agosto de 2019 15:00
    miércoles, 7 de agosto de 2019 10:29
  • en el Program.cs, en el Main() puede asociar el Application.ThreadException o AppDomain.CurrentDomain.UnhandledException

    StartupNextInstance: Se genera cuando se inicia una aplicación de instancia única y dicha aplicación está ya activa.

    Startup, puede ser en el Program.cs, en el Main().


    Shutdown, al finalizar Application.Run?? OJO si matan el proceso de Windows, cierre de sesión, apagado de PC...,
    miércoles, 14 de agosto de 2019 20:51