none
Como exibir formularios com showdialog() em csharp RRS feed

  • Pergunta

  • Olá pessoal estou com o seguinte método em csharp  convertido do vb.net

    private void exibeLogin()
            {
               // My.Forms.frmLogin.ShowDialog();
                
            }

    gostaria de saber o que falta para eu exibir o meu form em csharp ou o que falta a ser corrigido para exibir um form em csharp com showdialog o mesmo usado em vb.net

    estou com o visualstudio2008 .NET FRAMEWORK 3.5 .NET

    fico no aguardo e desde já agradeço


    LADEF

    domingo, 31 de maio de 2015 21:36

Respostas

  • você precisa instanciar o form antes...

                frmLogin f = new frmLogin();
                f.ShowDialog();


    Natan

    • Marcado como Resposta LuizIta segunda-feira, 1 de junho de 2015 12:32
    domingo, 31 de maio de 2015 21:53
  • Se o botão de fechar estiver no próprio form, você não precisa instanciar, basta por no evento Click:

    this.Close();


    Natan

    • Marcado como Resposta LuizIta quinta-feira, 4 de junho de 2015 17:02
    segunda-feira, 1 de junho de 2015 16:05
  • Luiz, 

    Deixe o construtor do frmMain da seguinte forma:

    bool total = false;

    public frmMain() { InitializeComponent(); this.Opacity = 0; }


    no seu evento Paint do frmMain inclua:

    			if (total)
    			{
    				return;
    			}
    
    			for (double i = 0; i < 100; i++)
    			{
    				System.Threading.Thread.Sleep(10);
    				this.Opacity = i / 100;
    
    			}
    
    			total = true;

    Testa pra ver se atende.



    Natan

    • Marcado como Resposta LuizIta quinta-feira, 4 de junho de 2015 17:03
    terça-feira, 2 de junho de 2015 14:25

Todas as Respostas

  • você precisa instanciar o form antes...

                frmLogin f = new frmLogin();
                f.ShowDialog();


    Natan

    • Marcado como Resposta LuizIta segunda-feira, 1 de junho de 2015 12:32
    domingo, 31 de maio de 2015 21:53
  • MUITO OBRIGADO E PARA FECHAR O FORM NUM EVENTO DO METODO FECHAR

    seria a mesma coisa.. mas ai qual o comando seria f.hide algo assim

    fico no aguardo e desde já agradeço


    LADEF

    segunda-feira, 1 de junho de 2015 12:33
  • Se o botão de fechar estiver no próprio form, você não precisa instanciar, basta por no evento Click:

    this.Close();


    Natan

    • Marcado como Resposta LuizIta quinta-feira, 4 de junho de 2015 17:02
    segunda-feira, 1 de junho de 2015 16:05
  • e caso estive-se em form diferente por exemplo num mdi form ou frmmain como eu o instanciaria aoós um tempo ele subir gradativamente a opacidade e diminuir a opacidade e fechar

    fico no aguardo e desde já agradeço


    LADEF

    segunda-feira, 1 de junho de 2015 16:47
  • deve existir outra forma... mas assim faz...

    		public frmLogin()
    		{
    			InitializeComponent();
    		}
    
    		bool total = false;
    
    		private void frmLogin_Paint(object sender, PaintEventArgs e)
    		{
    			if (total)
    			{
    				return;
    			}
    
    			for (double i = 0; i < 100; i++)
    			{
    				System.Threading.Thread.Sleep(10);
    				this.Opacity = i / 100;
    
    			}
    
    			total = true;
    		}
    
    		private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
    		{
    
    			for (double i = 100; i > 0; i--)
    			{
    				System.Threading.Thread.Sleep(10);
    				this.Opacity = i / 100;
    
    			}
    		}
    


    Natan

    segunda-feira, 1 de junho de 2015 20:16
  • Natan bom dia e qual destes métodos eu coloco no evento Load do frmMain.cs

    ou qual seria a ordem de colocação dos mesmos

    Fico no aguardo e desde já agradeço


    LADEF

    terça-feira, 2 de junho de 2015 11:54
  • Luiz, bom dia!

    não precisa alterar o evento Load, somente o evento Paint e o FormClosing do formulário que terá isso.



    Natan

    terça-feira, 2 de junho de 2015 12:21
  • Mas o que eu perguntei relativo a um form secundário para eu chamar o formulário não tenho que por exemplo 

    chamar o método no evento load do frmmain.cs por exemplo

    colocar o 

    frmLogin()

    no evento load do frmmain.cs

    fico no aguardo desde já agradeço


    LADEF

    terça-feira, 2 de junho de 2015 13:17
  • Luiz, 

    Deixe o construtor do frmMain da seguinte forma:

    bool total = false;

    public frmMain() { InitializeComponent(); this.Opacity = 0; }


    no seu evento Paint do frmMain inclua:

    			if (total)
    			{
    				return;
    			}
    
    			for (double i = 0; i < 100; i++)
    			{
    				System.Threading.Thread.Sleep(10);
    				this.Opacity = i / 100;
    
    			}
    
    			total = true;

    Testa pra ver se atende.



    Natan

    • Marcado como Resposta LuizIta quinta-feira, 4 de junho de 2015 17:03
    terça-feira, 2 de junho de 2015 14:25
  • o que eu quero é a opacidade do meu primeiro form de apresentação que está em center parent dentro do frmMdi.cs que seria o formmain

    exemplo o frmApresentação seria o opacity

    e o frmMain seria o mdi sem opacity

    neste caso do construtor que vc me passou o inicializiComponent é o que chama o frmApresentação

    fico no aguardo e desde já agradeço


    LADEF

    terça-feira, 2 de junho de 2015 14:45
  • Luiz,

    você tentou fazer a mesma coisa com o form que você quer que fique com a transparência?


    Natan

    terça-feira, 2 de junho de 2015 15:00
  • Olá Natan muito obrigado pelas dicas, acredito que este método que você me postou seria 

    inserido no frmMain.cs em relação aos forms filhos correto?

    mas dando uma pesquisada eu achei este que seria em relação ao próprio form filho fora do mdi pai, inserido no construtor do form filho e vou postar para você, Natan que me ajudou muito e para quem precisar realmente funcionou e muito obrigado pela ajuda

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace projeto
    {
        public partial class frmPresents : Form
        {
            public frmPresents()
            {
                InitializeComponent();
    
               // ' Add any initialization after the InitializeComponent() call.
                this.CenterToParent();
                this.Opacity = 0.01;
                timer1.Interval = 50;
                timer1.Enabled = true;
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                this.Opacity = this.Opacity + 0.01;
                if (this.Opacity == 1) {
                    timer1.Enabled = false;
                    Visible = false;
                    Close();
                
                }
            }
        }
    }
    

    Espero que esta sua dica e esta aqui que estou postando ajude mais alguem. Mas desde já Agradeço e muitoooo...funcionou perfeito....


    LADEF

    quinta-feira, 4 de junho de 2015 17:08