Como construir canvas inicial no aplicativo de formulários do windows?

Eu preciso mostrar canvas inicial no meu aplicativo iniciar por alguns segundos. Alguém sabe como implementar isso?

Será muito apreciado pela ajuda.

Primeiro, crie sua canvas inicial como uma forma imóvel e sem bordas com sua imagem nela, configurada para exibir inicialmente no centro da canvas, colorida da maneira que você quiser. Tudo isso pode ser definido dentro do designer; especificamente, você quer:

  • Definir as propriedades ControlBox, MaximizeBox, MinimizeBox e ShowIcon do formulário como “False”
  • Defina a propriedade StartPosition como “CenterScreen”
  • Defina a propriedade FormBorderStyle como “None”
  • Defina o MinimumSize e o MaximumSize do formulário para que sejam iguais ao tamanho inicial.

Então, você precisa decidir onde mostrá-lo e onde descartá-lo. Essas duas tarefas precisam ocorrer em lados opostos da lógica de boot principal do seu programa. Isso pode estar na rotina main () do seu aplicativo ou, possivelmente, no manipulador Load do formulário principal do aplicativo; onde quer que você esteja criando objects grandes e caros, lendo as configurações do disco rígido e geralmente demorando muito para fazer coisas nos bastidores antes que a canvas principal do aplicativo seja exibida.

Então, tudo o que você precisa fazer é criar uma instância do seu formulário, Show () e manter uma referência a ela enquanto você faz a boot. Depois que o formulário principal for carregado, feche ().

Se a sua canvas inicial tiver uma imagem animada, a janela precisará ser “double-buffered” também, e você precisará ter certeza absoluta de que toda a lógica de boot acontece fora do thread da GUI (significando que você não pode ter o seu main Carregando lógica no manipulador de carga do mainform, você terá que criar um BackgroundWorker ou alguma outra rotina de thread.

O exemplo abaixo da Telerik usa um controle ShapedForm, mas mude isso para um formulário normal do Windows. Esta é de longe a maneira mais fácil e melhor que já vi.

http://www.telerik.com/support/kb/winforms/forms-and-dialogs/details/add-splashscreen-to-your-application

Aqui estão alguns passos de orientação …

  1. Crie um formulário sem borda (esta será sua canvas inicial)
  2. No início da aplicação, inicie um timer (com alguns segundos de intervalo)
  3. Mostre seu formulário inicial
  4. No evento Timer.Tick, pare o timer e feche o formulário Splash – em seguida, mostre o formulário de inscrição principal

Dê uma chance e se você ficar preso, volte e faça perguntas mais específicas relacionadas aos seus problemas.

solução simples e fácil de criar canvas inicial

  1. abrir novo formulário use o nome “SPLASH”
  2. mudar a imagem de fundo o que você quiser
  3. selecione barra de progresso
  4. selecionar timer

agora defina o timer no timer:

private void timer1_Tick(object sender, EventArgs e) { progressBar1.Increment(1); if (progressBar1.Value == 100) timer1.Stop(); } 

adicione um novo formulário, use o nome “FORM-1” e use o seguinte comando no FORMULÁRIO 1.

Nota: o formulário Splash funciona antes de abrir o seu form1

  1. adicionar esta biblioteca

     using System.Threading; 
  2. criar function

     public void splash() { Application.Run(new splash()); } 
  3. use o seguinte comando na boot, como abaixo.

     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(); } } 

http://solutions.musanitech.com/c-create-splash-screen/

criar respingo

 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(); 

Então na sua aplicação

 sp = new Splash(); sp.ShowDialog(); 

As outras respostas aqui cobrem isso bem, mas vale a pena saber que existe uma funcionalidade incorporada para canvass iniciais no Visual Studio: Se você abrir as propriedades do projeto para o aplicativo de formulário do Windows e examinar a guia Aplicativo, haverá uma “canvas inicial”. : “opção na parte inferior. Você simplesmente escolhe qual formulário do seu aplicativo deseja exibir como a canvas inicial e ele cuidará de exibi-lo quando o aplicativo for iniciado e ocultá-lo quando o formulário principal for exibido.

Você ainda precisa configurar seu formulário conforme descrito acima (com as bordas corretas, posicionamento, dimensionamento etc.)

Há uma boa canvas inicial no CodeProject.

Vem com

  • Aparecimento gradual
  • Barra de progresso
  • Rótulo de status
  • Desaparecer
  • Clique duas vezes para dispensar

O autor recentemente passou e atualizou o código. É realmente um trabalho e é uma colaboração entre muitos desenvolvedores diferentes com boas idéias.

Primeiro você deve criar um formulário com ou sem Border (border-less é o preferido para essas coisas)

 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(); } } 

No Main você deve usar isso

  static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new SplashForm()); } } 

Experimente 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(); } } } 

Tente isto:

 namespace SplashScreen { public partial class frmSplashScreen : Form { public frmSplashScreen() { InitializeComponent(); } public int LeftTime { get; set; } private void frmSplashScreen_Load(object sender, EventArgs e) { LeftTime = 20; timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { if (LeftTime > 0) { LeftTime--; } else { timer1.Stop(); new frmHomeScreen().Show(); this.Hide(); } } } }