C# implementa la transferencia de valor entre múltiples ventanas mediante delegación

Cuando usé Qt para escribir antes, tenía señales y ranuras para implementarlo. Si uso C#, debería haber algo similar.

Lo que probablemente logré es que creé dos nuevas ventanas secundarias en la ventana principal. Ambas ventanas secundarias pueden pasar los datos procesados ​​a la ventana principal y las dos ventanas secundarias se comunican a través de la ventana principal.

Explicaré el código según el nombre de la ventana anterior.

Ventana de inicio de sesión de cuenta y contraseña


        public delegate void SendToken(string token);
        public event SendToken sendToken;
        private void btnLogin_Click(object sender, EventArgs e)
        {

           ....

                sendToken(token);

        }

ventana principal


        public delegate void SendMerchantFormToken(string msg);   // 定义转发消息的委托
        public event SendMerchantFormToken sendMerchantFormToken;   // 定义事件



        public MerchantForm merchantForm;
        public LoginForm loginForm;

        //打开登录界面
        void openNewForm()
        {
            loginForm = new LoginForm();
            loginForm.BringToFront();
            loginForm.MaximizeBox = false;//最大化
          
            loginForm.Text = "账号密码登录";
        
            loginForm.sendToken += new LoginForm.SendToken(receiveloginFormToken);  // 订阅子窗体1的send事件
            loginForm.TopMost = true;//置于顶层
            loginForm.StartPosition = FormStartPosition.CenterScreen;
            loginForm.Show();
          
            merchantForm = new MerchantForm();
            merchantForm.BringToFront();
            merchantForm.MaximizeBox = false;//最大化
          
            merchantForm.Text = "商户选择";
            merchantForm.TopMost = true;//置于顶层
            merchantForm.StartPosition = FormStartPosition.CenterScreen;
            merchantForm.Hide();

            sendMerchantFormToken += new SendMerchantFormToken(merchantForm.getForm1Token);

        }

        //是委托代理的方法,也就是要最终执行的方法,需要定义并实现
        private void receiveloginFormToken(string msg)
        {
           
            sendMerchantFormToken(msg);
            merchantForm.Show();
        }

Ventana de lista de comerciantes


        public void getForm1Token(string str)
        {

             MessageBox.Show(str);
            



        }

Supongo que te gusta

Origin blog.csdn.net/title71/article/details/131303731
Recomendado
Clasificación