日期:2014-05-17  浏览次数:20762 次

C# 本页面调用其他页面的事件
RT,A页面有一个combobox和一个按钮,点击按钮,弹出B页面,B页面对A页面的combobox添加项,添加成功,要在B页面调用A页面的事件,对combobox的项重新加载,分不多求指教

------解决方案--------------------
应该就是窗体间传递参数了,你可以把B页面的构造函数改成
        Form1 form1;
        public Form2(Form1 form1)
        {
            InitializeComponent();
            this.form1 = form1;
        }


把A窗体传过去,那B窗体怎么操作A窗体上的控件和方法都可以
------解决方案--------------------
不好回答你的问题。环境不太清晰。
你这是webform还是winform??另外你自己本身不能成功的代码又是什么?
------解决方案--------------------
应该是winform,webform做不到的。
1楼正解,但是有一点,你的combobox必须是public的,要不然在其他页面访问不到
------解决方案--------------------
干嘛弄两个页面,看你描述用dialog就可以解决嘛,页面内处理多简单

楼主可以看看jquery的dialog控件
------解决方案--------------------
在A页面定义一个集合变量(存储要绑定的数据),B页面往A页面添加值,首先对combobox数据做一个校验,看是否添加重复项,然后清空combobox.Items.Clear(),之后从新给combobox绑定集合变量
------解决方案--------------------
把B页面的构造参数里加上
private System.Windows.Forms.ComboBox combx;
        public Form2(System.Windows.Forms.ComboBox combox1)
        {
            InitializeComponent();
            combx = combox1;
        }

A页面点击按钮的时候new一个B页面然后将combox传递过去
private void button1_Click(object sender, EventArgs e)
        {
            Form f2 = new Form2(comboBox1);
            f2.ShowDialog();
        }
 然后就可以在B页面的事件里面对传递过来的combox进行修改了,B中操作combox的代码
 private void button1_Click(object sender, EventArgs e)
        {
            combx.Items.Add(textBox1.Text);
            this.Close();
        }
A页面中的combox也就跟着改变了。
------解决方案--------------------
你写成方法不行么