关于C#窗体值输出到另外一个窗体的问题,如何解决?

    private void button1_Click(object sender, EventArgs e)
    {
        //获取用户名
        string yonghuming = comboBox用户.Text;
        //获取密码
        string mima = textBox密码.Text;
        //判断用户名密码是否正确
        if ("技术员".Equals(yonghuming ) && "123".Equals(mima ))
        {
            MessageBox.Show("登录成功!");

           
            //comboBox用户.Text = label3.Text;                 //这个值怎么输出到另外一个窗口?//////////////////////////////

        }
        
        else if ("管理员".Equals(yonghuming) && "1076255".Equals(mima))
        {   
            MessageBox.Show("登录成功!");
        }
        else
        {
            MessageBox.Show("登录失败!");
        }    
    }

另外一个窗体的构造函数上面加上参数 然后new的时候把参数带上 或者直接赋值都是可以的

我喜欢另外搞个公用数据库

net6啥就不说了,如今的教材都是2008年的,就算俺们说net6的,你教材上也没有

我们来说2008年net1.0就有的,但是教材通常没有提过,但是实际上net1.0的代码一样可以用的

 public class UseInfoContext
        {
            //给这个例子只是告诉你这些信息应该存在全局上下文中
            //当然上下文会有生存期控制,net6的我们可以用Scope控制
            //至于2008的年教材么,能介绍单件全局静态的都算好教材了,我们也不能指望那个年代的教材会有这方面的
            //设计和考虑

            //为了不引发你其他疑问,我先用静态属性。这只是一个引子。
            //引子只是为了引入上下文概念,我可不想后面又有一堆人园子的人们过来说啥贫血,懒汉这些玩意
            public static string Name {
                get
                {
                    //net1.0就存在应用程序全局上下文
                    //这东西那个年代的教材不会讲,但是如果现在作者从新写应该会写进去
                    return (string)AppDomain.CurrentDomain.GetData("username");
                }
                set
                {
                    AppDomain.CurrentDomain.SetData("username",value);
                }
            }
        }


当然,我这么说的,其实是让你利用那些2008年入门基础后,就赶紧扔掉。赶快换点新教材看,同样提示那些喜欢出名的,出书的。赶紧把那些园子给你们的恰钱的啥DDD,abp招数扔掉吧。如今的新人们现在缺的可不是这些,他们缺的是最新的教材了和最近10年最新的思想和手段。你们最抢先出来就有小钱钱哦。

namespace 窗口A{
public static string str { get;set; }
private void button1_click(object sender, LinkLabelLinkClickedEventArgs e){
str = "1";
}
}

namespace 窗口B{
private void 窗口B_Load(object sender, EventArgs e) {
new thread(()=>{
while (true) {
if (string.IsNullOrWhiteSpace(窗口A.str ))
continue;
if (!this.IsHandleCreated)
continue;
this.BeginInvoke((Action)(() => {
label1.Text=窗口A.str ;
}));
}
}).start();
}
}

我是个小白,理解不了,太深奥了,谢谢