当前位置:编程学习 > C#/ASP.NET >>

请教form子窗体取值后传到调用父窗体事件如何实现

form1窗体 Show() form2窗体后 , form2窗体 ShowDialog form3窗体

现在在form3窗体点击一个按钮,取到form3窗体的值后,调用form1窗体里面的button1_Click()事件

button1_Click()事件里面有pictureBox1等控件    知道C#是调用父窗体保护控件安全,不给直接调用,请教如何

实现调用,谢谢指教。 --------------------编程问答-------------------- 新建个类 构造函数里传form1 在form1的构造函数里把要用的控件传进去 至于form3调用form1 在new的传一个委托变量过去 在form3里拿到这个委托变量并触发 事件 在form1写你要做的代码 --------------------编程问答-------------------- http://bbs.csdn.net/topics/360140208 --------------------编程问答-------------------- 使用委托 ,在用 form的invoke 方法 执行你定义的委托 --------------------编程问答-------------------- 在From1添加如下红色代码,private void button1_Click()改成public void button1_Click(),然后在From3中调用 From1.pFrom1.button1_Click()
public From1()
        {
            pFrom1 = this;
            InitializeComponent();
        }
        public static From1 pFrom1 = null;
        private void Form1_Load(object sender, EventArgs e) --------------------编程问答-------------------- 使用委托事件  是比较方便直观 --------------------编程问答-------------------- 在From1添加如下红色代码,private void button1_Click()改成public void button1_Click(),然后在From3中调用 From1.pFrom1.button1_Click()
public From1()
        {
            pFrom1 = this;
            InitializeComponent();
        }
        public static From1 pFrom1 = null;
        private void Form1_Load(object sender, EventArgs e) 

我想请教下   这里面 static 把窗体当成一个静态变量  可以实现;  但是我在form3构造一个form1出现问题,new form1();然后运行form1里面的button1_Click()就提示错误,请教是什么原因呢?

    委托代码如何实现呢。多谢指教 --------------------编程问答-------------------- 没看懂,难道是
button1_Click(null,null);
--------------------编程问答-------------------- 委托足以 --------------------编程问答--------------------
  
  public partial class Form3 : Form
    {
       public   static  Delegate AnonymousDelegate { get; set; }
        public Form3()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            AnonymousDelegate.DynamicInvoke(textBox1.Text);
        }
    }
//在form1中:
    public partial class Form1 : Form
    {
        static public string Form1Data;
        public Form1()
        {
            InitializeComponent();
            Form3.AnonymousDelegate = new Action<String>((x) => textBox1.Text = x);
           
        }
   }
--------------------编程问答--------------------
//将Form3.AnonymousDelegate = new Action<String>((x) => textBox1.Text = x);
//替换为
Form3.AnonymousDelegate = new Action<String>((x) => button2_Click(null,null)
)   
可满足你的需要         
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,