none
небольшая проблемка RRS feed

Ответы

  • Могу предположить что у вас открывается 1 форма из за вот этого кода

    protected override void OnKeyDown(KeyEventArgs args)
            {
                base.OnKeyDown(args);
                if (args.KeyCode == Keys.Enter)
                {
                    object o = null;
                    System.Threading.SynchronizationContext.Current.Post(delegate { button1_Click(o, args); }, o);
    
                }
    
            }

    Попробуйте его убрать и посмотрите что получится

    • Помечено в качестве ответа motokraft 9 сентября 2013 г. 15:55
    9 сентября 2013 г. 5:18

Все ответы

  • это вопрос или утверждение
    5 сентября 2013 г. 20:04
  • вопрос
    6 сентября 2013 г. 3:59
  • :)) вопрос хороший, но телепатов или экстрасенсов тут нету, приведите код с которым вы работаете тогда можно будет что то сказать, а так 2 формы показываются значит программа работает неправильно
    6 сентября 2013 г. 5:56
  • перед запуском программы появляется окно входа в программу, на кнопке войти использую код

     if (LoginSite.Text == UserLogin.Text && PassWorldSite.Text == UserPassWorld.Text)
                {
                   
                    Form1 Form1 = new Form1();
                    Form1.Show();
    
                    notifyIcon1.Visible = true; // это я делаю видимым иконку трея
                    this.Hide(); // это я делаю невидимым форму
    
                }
                else
                {
                    MessageBox.Show("Вы указали неверный Логин или Пароль. Повторите ввод.");
                }
    мне кажется что вот из-за этого открывается 2 формы, а из-за чего именно не могу понять.


    • Изменено motokraft 6 сентября 2013 г. 14:11 123
    6 сентября 2013 г. 14:11
  • if (LoginSite.Text == UserLogin.Text && PassWorldSite.Text == UserPassWorld.Text)

    вот этот

    if (LoginSite.Text == "test" && PassWorldSite.Text == "test")

    код не действителен. Ведь вы сравниваете его с чем?

    Лучше используйте

    вы проверяете является ли логин пользователя "test" и если пароль "test" то открываете новую форму. И не нужно использовать Hide(). Вам эта форма логина думаю больше не потребуется. Лучше Close() или еще лучше Dispose() если поддерживается.

    Все дело в деталях. следите за каждой буквой. Порой одни символ решает многое, это же dotNET

    6 сентября 2013 г. 17:53
  • я тут эксперементировал, если использовать главную Form1 то открывается одно форма, а если использовать другую главную форму, от окно Form1 откроется 2. 
    6 сентября 2013 г. 18:37
  • Посмотрите какой код у вас выполняется в файле Programs.cs, там навернека есть код

    Application.Run(new Form1());

    Обычно создается 1 форма для логина в которой находится вся логика для проверке пользователя

    потом

    static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } public class Form1 { public Form1() { LoginForm form = new LoginForm(); if (form.ShowDialog() != DialogResult.OK) { Application.Current.Shutdown(); return; } //пользователь валидный продолжаем запуск InitializeComponent();

    ... } }


    6 сентября 2013 г. 19:26
  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    
    namespace WEBServer
    {
        public partial class LoginVhod : Form
        {
            #region Settings action
            Login Login = new Login();
            //Чтение настроек
            private void readSettin()
            {
                Login.ReadXml();
    
                UserLogin.Text = Login.Fields.UserLogin;
                UserPassWorld.Text = Login.Fields.UserPassWorld;
    
            }
    
            //Чтение настроек
            private void vhod()
            {
                Login.ReadXml();
    
                UserLogin.Text = Login.Fields.UserLogin;
                UserPassWorld.Text = Login.Fields.UserPassWorld;
    
            }
            #endregion
    
            #region Settings action
            Profiles Profiles = new Profiles();
    
            //Чтение настроек
            private void DownloadFilesSite()
            {
                Profiles.DownloadFilesSite();
    
                Logiw.Text = Profiles.Fields.EmailSettings;
    
            }
            #endregion
    
            public LoginVhod()
            {
                InitializeComponent();
                this.button1.Click += new System.EventHandler(this.button1_Click);
            }
    
            protected override void OnKeyDown(KeyEventArgs args)
            {
                base.OnKeyDown(args);
                if (args.KeyCode == Keys.Enter)
                {
                    object o = null;
                    System.Threading.SynchronizationContext.Current.Post(delegate { button1_Click(o, args); }, o);
    
                }
    
            }
    
            private void LoginVhod_Load(object sender, EventArgs e)
            {
            здесь код знать не обязательно, одно могу сказать здесь просто создается папка и скачиваются несколько файлов, а затем чтение их.
            }
    
            private void LoginVhod_FormClosing(object sender, FormClosingEventArgs e)
            {
               
                Application.Exit();
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                if (LoginSite.Text == UserLogin.Text && PassWorldSite.Text == UserPassWorld.Text)
                {
                   
                    Form1 Form1 = new Form1();
                    Form1.Show();
    
                    notifyIcon1.Visible = true; // это я делаю видимым иконку трея
                    this.Hide(); // это я делаю невидимым форму
    
                }
                else
                {
                    MessageBox.Show("Вы указали неверный Логин или Пароль. Повторите ввод.");
                }
                
            }
    
            private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
            {
                this.Show(); // делаю форму видимой
                notifyIcon1.Visible = false; // иконка трея невидима
            }
    
            private void LoginVhod_MouseEnter(object sender, EventArgs e)
            {
                readSettin();
            }
        }
    }
    
    вот мой почти весь код главной формы из которой я вызываю Form1.
    8 сентября 2013 г. 13:25
  • Могу предположить что у вас открывается 1 форма из за вот этого кода

    protected override void OnKeyDown(KeyEventArgs args)
            {
                base.OnKeyDown(args);
                if (args.KeyCode == Keys.Enter)
                {
                    object o = null;
                    System.Threading.SynchronizationContext.Current.Post(delegate { button1_Click(o, args); }, o);
    
                }
    
            }

    Попробуйте его убрать и посмотрите что получится

    • Помечено в качестве ответа motokraft 9 сентября 2013 г. 15:55
    9 сентября 2013 г. 5:18
  • спасибо помогло удалил и все работает.
    9 сентября 2013 г. 15:55