Winform跨窗口传递数据的几种情况

一,类中定义静态字段作为中间转换变量,在另一个类中直接改变静态字段的值。

public partial class Form2_Main : Form
    {
        public static string _currentlogname = "";
        public static bool _logon = false;

        public Form2_Main()
        {
            InitializeComponent();
        }
     }

 

 public partial class Form1_Logon : Form
    {


        public Form1_Logon()
        {
            InitializeComponent();
        }

   
        private void button1_Click(object sender, EventArgs e)
        {
            if ((textBox1.Text=="admin")&&(textBox2.Text=="123"))
            {
                Form2_Main._currentlogname = "admin";
                Form2_Main._logon = true;
                this.Close();

            }

        }

二,在一个窗体中改变另外一个窗体中控件的显示将子窗口中的控件属性改为public,即可在其他窗口中操作改值。

1、将要改变的form中的控件属性改为public

2、在任何一个窗体中都可以改变ShowForm中控件的内容

三,利用构造函数传递初始化值

        
C#:
 string frmStatus = "";//ADD/EDIT/VIEW
 public frmLubrication(string initFormStatus) :this ()
        {
            this.frmStatus = initFormStatus;           
        }
        
在别的页面调用:

 this.Form.Show(new frmLubrication("EDIT");


VB.NET     

 Dim JobDetailsRefno As Integer

    Public Sub New(ByVal jDetailRefNo As Integer)
        MyBase.New()
        InitializeComponent()
        JobDetailsRefno = Convert.ToString(jDetailRefNo)
    End Sub
    
在别的页面调用:

  Dim frm As New frmAdjust(nJobDetailsRefNo) '
        frm.ShowDialog()
        
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐