开发者

C#子窗体获取父窗体TextBox框的值实现方式

目录
  • C#子窗体获取父窗体TextBox框的值
    • 方法1
    • 方法2
    • 结果
  • 总结

    C#子窗体获取父窗体TextBox框的值

    新建两个窗体,假设窗体三可以跳转到窗体四,即窗体三为父窗体,窗体四为子窗体。

    窗体android三拖动两个Label和TextBox,再拖动一个Button组件。

    窗体四同理,但不需要Button组件。

    C#子窗体获取父窗体TextBox框的值实现方式

    C#子窗体获取父窗体TextBox框的值实现方式

    组件拖动完之后,再写代码部分。

    方法1

    子窗体Form4:
    public partial class Form4 : Form
        {
            // 【关键】定义带参数的构造函数,用于接收Form3传递的值
            public Form4(string form3Text)  // 参数名可自定义,如form3Text
            {
                InitializeComponent();  // 必须保留,窗体初始化用
                // 将Form3传递的值赋值给Form4的TextBox
                textBox1.Text = form3Text;  // 假设Form4的TextBox名为textBox1
            }
            public Form4()
            {
                InitializeComponent();
            }
        }
    父窗体Form3:
    private void button1_Click(object sender, EventArgs e)
            {
                // 获取Form3中TextBox的值(假设Form3的TextBox名为textBox1)
                string valueFromForm3 = textBox1.Text;
    
                // 创建Form4实例,通过构造函数传递值
                Form4 form4 = new Form4(valueFjavascriptromForm3);  // 这里的参数就是Form4构造函数的form3Text
    
                // 显示Form4
                form4.Show();  // 或 form4.ShowDialog();
            }

    方法2

    子窗体Form4:
    
    public partial class Form4 : Form
        {
            // 1. 确保属性是public(关键,否则Form3无法访问)
            public string Form3Value { get; set; }
    
            public Form4()
            {
                InitializeComponent();
    
                // 【可选】手动绑定Load事件(若设计器没自动绑定)android
                this.Load += new EventHandler(Form4_Load);
            }
    
            // 2. 在Form4加载时赋值(时机关键:必须在Form4显示前完成)
            private void Form4_Load(object sender, EventArgs e)
            {
                // 给textBox1赋值,同时处理空值(避免显示空白)
                textBox1.Text = Form3Value ?? "未接收到数据"; 
            }
        }
    }
    父窗体Form3:
    
    private void button1_Click(object sender, EventArgs e)
    {
        // 1. 先验证Form3的textBox1有值(避免传空)
        if (string.IsNullOrEmpty(textBox1.Text))
        {
            MessageBox.Show("Form3的textBox1请先输入数字!");
            return;
        }
    
        // 2. 创建Form4实例,传递值
        Form4 form4 = new Form4();
        fopythonrm4.Form3Value = textBox1.Text;  //js 确保这里传的是Form3的textBox1值
    
        // 3. 显示Form4(用Show或ShowDialog都可以)
        form4.Show();  // 不要用Hide()!确保Form4正常显示
    }

    上述只是实现一个传值,两个传值同理。

    结果

    C#子窗体获取父窗体TextBox框的值实现方式

    C#子窗体获取父窗体TextBox框的值实现方式

    结束

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜