c# 在form2中控制form1的控件? 急用

在form2的textbox中填入 一个的词语, 然后按下form2中的一个button,使这个词语添加到form1的combox的list中 求代码
2026年09月25日 22:54
有3个网友回答
网友(1):

相比较上面的2个帅哥提到的public函数,调用,
建议你学习使用委托或者事件(实际上事件是委托的一种特例,我们点击按钮,触发一个事件实际上也是一个委托。)
学习调用委托或者事件,是学习C#必经之路。很简单的东西,被书上讲复杂了。以后跨线程调用常用的就是这个东西。要想提高,必须掌握。

你讲的问题实际上是跨窗口间的调用问题,用静态变量的方法比较原始,并且刷新起来很别扭。通行的做法就是用事件或者委托来实现。下面代码 15行内完成你的需求,简练简洁

form1中代码
点击某一按钮弹出form2的代码
form2 f = new _form2();
f._bbb+= new EventHandler(_aaa);
f.ShowDialog();

定义上面的_aaa
private void _aaa(object sender, EventArgs e)
{
//combos的list添加
}

form2中代码
public event EventHandler _bbb;
在 form2的button代码
if (_ bbb!= null)
{
_bbb(null, null);//这时的bbb实际上就是form1中的aaa函数,
//MessageBox.Show(" 提交成功!");
}

讲解以上代码
1、在form1中定义一个函数 -aaa(),这个函数负责给combox添加删除数据
2、同时,在form1中添加 弹出form2的代码
在这个代码中,要添加一个事件 ,这个事件调用_aaa()这个函数
3、去FORM2中间定义一个_bbb事件,供上述2调用;
4、在FORM2中 ,点击按钮后,调用form1的aaa()。参数可以是空值。『这个地方可能是理解上的难点,仔细琢磨』

网友(2):

在form2里面定义一个public变量,点击以后,隐藏form2,记住不要关闭
在form1中就可以直接使用这个变量了

网友(3):

在Program里 建一个结构体;里面定义一个静态变量,这个变量在FORM1 和FORM2 中可以通用;直接赋值取值就好;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Form1Form2
{
public struct mm
{
public static string m;
};
static class Program
{
///


/// 应用程序的主入口点。
///

[STAThread]
static void Main()
{

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

FORM1
mm.m = textBox1.Text;
FORM2
textBox1.Text = mm.m;

在FORM1中可以获得这个值,再加入COMBOX中就好了!是静态变量!主程序没关闭 值就存在。