c# - usuario - ¿Cómo construir una pantalla de inicio en la aplicación de formularios de Windows?
eventos de un formulario en visual basic (9)
Necesito mostrar la pantalla de bienvenida en el inicio de mi aplicación durante unos segundos. ¿Alguien sabe cómo implementar esto?
Se apreciará mucho por la ayuda.
Aquí hay algunos pasos de guía ...
- Crea un formulario sin bordes (esta será tu pantalla de inicio)
- Al iniciar la aplicación, inicie un temporizador (con un intervalo de unos segundos)
- Muestre su forma de Splash
- En el evento Timer.Tick, pare el cronómetro y cierre el formulario de Splash, luego muestre su formulario de solicitud principal
Dale una oportunidad y si te quedas atascado, vuelve y formula preguntas más específicas relacionadas con tus problemas.
El ejemplo siguiente de Telerik usa un control ShapedForm; sin embargo, cámbielo a un formulario normal de Windows. Esta es, de lejos, la forma más fácil y mejor que he visto.
Hay una pantalla de bienvenida bastante buena en CodeProject.
Viene con
- Fundirse
- Barra de progreso
- Etiqueta de estado
- Desaparecer
- Doble clic para descartar
El autor ha revisado y actualizado recientemente el código. Es realmente un gran trabajo, y es una colaboración entre muchos desarrolladores diferentes con buenas ideas.
Las otras respuestas aquí lo cubren bien, pero vale la pena saber que hay una funcionalidad incorporada para las pantallas de presentación en Visual Studio: si abre las propiedades del proyecto para la aplicación de formulario de Windows y mira la pestaña Aplicación, hay una "pantalla de bienvenida". : "opción en la parte inferior. Simplemente elige qué formulario de la aplicación quieres mostrar como pantalla de bienvenida y se encargará de mostrarlo cuando la aplicación se inicie y de ocultarlo una vez que se muestre tu formulario principal.
Aún necesita configurar su formulario como se describe arriba (con los bordes correctos, posicionamiento, tamaño, etc.)
Primero debe crear un formulario con o sin borde (se prefiere el borde inferior para estas cosas)
public class SplashForm : Form
{
Form _Parent;
BackgroundWorker worker;
public SplashForm(Form parent)
{
InitializeComponent();
BackgroundWorker worker = new BackgroundWorker();
this.worker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.worker _DoWork);
backgroundWorker1.RunWorkerAsync();
_Parent = parent;
}
private void worker _DoWork(object sender, DoWorkEventArgs e)
{
Thread.sleep(500);
this.hide();
_Parent.show();
}
}
En Main deberías usar eso
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new SplashForm());
}
}
Primero, crea tu pantalla de presentación como una forma inmóvil, sin bordes, con tu imagen en ella, configurada para mostrarse inicialmente en el centro de la pantalla, coloreada de la manera que desees. Todo esto se puede configurar desde el diseñador; específicamente, quieres:
- Establezca las propiedades ControlBox, MaximizeBox, MinimizeBox y ShowIcon del formulario en "False"
- Establezca la propiedad StartPosition en "CenterScreen"
- Establezca la propiedad FormBorderStyle en "Ninguno"
- Establezca MinimumSize y MaximumSize del formulario para que sean iguales a su Tamaño inicial.
Luego, debe decidir dónde mostrarlo y dónde despedirlo. Estas dos tareas deben ocurrir en lados opuestos de la lógica de inicio principal de su programa. Esto podría estar en la rutina main () de su aplicación, o posiblemente en el controlador de carga de su aplicación principal; donde sea que esté creando objetos grandes y caros, leyendo ajustes desde el disco duro, y generalmente tardando mucho tiempo en hacer cosas detrás de las escenas antes de que aparezca la pantalla principal de la aplicación.
Luego, todo lo que tiene que hacer es crear una instancia de su formulario, Mostrar (), y mantener una referencia mientras hace la inicialización de inicio. Una vez que su formulario principal se haya cargado, Ciérrelo ().
Si su pantalla de presentación tendrá una imagen animada, la ventana también tendrá que tener un "doble buffer", y deberá estar absolutamente seguro de que toda la lógica de inicialización ocurre fuera del hilo de la GUI (lo que significa que no puede tener su principal cargando la lógica en el controlador de carga de la forma principal, tendrá que crear un BackgroundWorker o alguna otra rutina con hilos.
Prueba este código
public partial class ssplashscreen : Form
{
public ssplashscreen()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Increment(1);
if (progressBar1.Value == 100)
{
timer1.Stop();
this.Hide();
Form frm = new login();
frm.Show();
}
}
}
crear salpicadura
private void timer1_Tick(object sender, EventArgs e)
{
counter++;
progressBar1.Value = counter *5;
// label2.Text = (5*counter).ToString();
if (counter ==20)
{
timer1.Stop();
this.Close();
}
}
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
this.ClientSize = new System.Drawing.Size(397, 283);
this.ControlBox = false;
this.Controls.Add(this.label2);
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.label1);
this.ForeColor = System.Drawing.SystemColors.ControlLightLight;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "Splash";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.ResumeLayout(false);
this.PerformLayout();
Luego en tu aplicación
sp = new Splash();
sp.ShowDialog();
solución simple y fácil de crear pantalla de bienvenida
- abrir nuevo nombre de uso de formulario "SPLASH"
- cambiar la imagen de fondo como quieras
- seleccionar barra de progreso
- seleccionar temporizador
ahora establece la marca del temporizador en el cronómetro:
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Increment(1);
if (progressBar1.Value == 100) timer1.Stop();
}
agregue el nuevo nombre de uso de formulario "FORM-1" y use el siguiente comando en FORMATO 1.
nota: el formulario de bienvenida funciona antes de abrir su formulario1
agregar esta biblioteca
using System.Threading;
crear función
public void splash() { Application.Run(new splash()); }
utilice el siguiente comando en la inicialización como a continuación.
public partial class login : Form { public login() { Thread t = new Thread(new ThreadStart(splash)); t.Start(); Thread.Sleep(15625); InitializeComponent(); enter code here t.Abort(); } }