Как исправить данные повторяется при нажатии кнопки Сохранить C # - PullRequest
0 голосов
/ 27 июня 2018
  1. Form1 код

    namespace passl {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                sidepanel.Height = btnuser.Height;
                personaldetail2.BringToFront();
            }
    
            private void btnuser_Click(object sender, EventArgs e)
            {
                sidepanel.Height = btnuser.Height;
                personaldetail2.BringToFront();
            }
    
            private void btnedu_Click(object sender, EventArgs e)
            {
                sidepanel.Height = btnedu.Height;
                educationaldetail2.BringToFront();
            }
    
            private void btnprint_Click(object sender, EventArgs e)
            {
               // print on new form 
                Form2 f2 = new Form2();
                f2.Show();
            }
    
            private void btnuserdetail_Click(object sender, EventArgs e)
            {
                raiseUpdate();
            }
    
            public delegate void UpdateDelegate(object sender, UpdateEventArgs args);
            public static event UpdateDelegate UpdateEventHandler;
    
            public class UpdateEventArgs : EventArgs
            {
                public string txt1Data { get; set; }
                public string txt2Data { get; set; }
                public string txt3Data { get; set; }
                public string txt4Data { get; set; }
            }
    
            protected void raiseUpdate()
            {
                UpdateEventArgs args = new UpdateEventArgs();
                args.txt1Data = personaldetail2.TextBox1.Text;
                args.txt2Data = personaldetail2.TextBox2.Text;
                args.txt3Data = educationaldetail2.TextBox1.Text;
                args.txt4Data = educationaldetail2.TextBox2.Text;
                UpdateEventHandler.Invoke(this, args);
            }
        } 
    }
    
  2. Form2 код

    namespace passl {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
                Form1.UpdateEventHandler += F1_UpdateEventHandler;
            }
    
            private void F1_UpdateEventHandler(object sender, Form1.UpdateEventArgs args)
            {
                label1.Text += "NAME  : " + args.txt1Data + Environment.NewLine;
                label2.Text += "EMAIL : " + args.txt2Data + Environment.NewLine;
                label3.Text += "SSC : " + args.txt3Data + Environment.NewLine;
                label4.Text += "HSC: " + args.txt4Data + Environment.NewLine;    
            }
        }
    }
    
  3. код usercontrol -> personaldetails2

    namespace passl.usercontrols {
        public partial class personaldetail : UserControl
        {
            public personaldetail()
            {
                InitializeComponent();
            }
    
            public TextBox TextBox1
            {
                get { return textBox1; }
                set { textBox1 = value; }
            }
    
            public TextBox TextBox2
            {
                get { return textBox2; }
                set { textBox2 = value; }
            }
    
        }
    }
    
  4. код usercontrol -> educationaldetails2

    namespace passl.usercontrols {
        public partial class personaldetail : UserControl
        {
            public personaldetail()
            {
                InitializeComponent();
            }
    
            public TextBox TextBox1
            {
                get { return textBox1; }
                set { textBox1 = value; }
            }
    
            public TextBox TextBox2
            {
                get { return textBox2; }
                set { textBox2 = value; }
            }
    
        }
    }
    

    Программа работает, но по нажатию кнопки сохранения n раз данные дублируются, они должны отображаться только один раз на form2

    Это изображение ниже проблемы в этом исправлении pls

    [1]: https://i.stack.imgur.com/2nwFq.png

1 Ответ

0 голосов
/ 27 июня 2018

Измените += на =. Он будет отменен последним нажатием кнопки.

private void F1_UpdateEventHandler(object sender, Form1.UpdateEventArgs args)
{
    label1.Text = "NAME  : " + args.txt1Data + Environment.NewLine;
    label2.Text = "EMAIL : " + args.txt2Data + Environment.NewLine;
    label3.Text = "SSC : " + args.txt3Data + Environment.NewLine;
    label4.Text = "HSC: " + args.txt4Data + Environment.NewLine;    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...