我找不到与此类似的东西,我在主窗口窗体中有一个组合框,我想将相同的组合框传递给另一个窗体并在那里更改它的值,以便在主窗口中更改它相应
我不熟悉C#道歉因为无知,我尝试了以下内容:
在主窗口中:
private void companiesToolStripMenuItem_Click(object sender, EventArgs e)
{
ModifyCompanies childForm = new ModifyCompanies(this);
childForm.ShowDialog();
}
第二种形式: 我已经构建了一个构造函数,并认为它可以工作,但即使它是相同的组合框,项目也不会显示。
public ModifyCompanies(MainWindow mainWindow)
{
this.mainWindow = mainWindow;
InitializeComponent();
comboBox1 = mainWindow.companyComboBox;
}
答案 0 :(得分:2)
将控件传递给不同的形式可能是一个坏主意,我建议在表单之间共享数据,如下例所示:
public class SharedData
{
public List<string> TestData { get; set; }
public SharedData()
{
TestData = new List<string>();
}
}
在你的课程班中:
class Program
{
public static SharedData Shared {get; set;}
[STAThread]
static void Main()
{
Shared = new SharedData();
Shared.TestData.Add("test1");
Shared.TestData.Add("test2");
Shared.TestData.Add("test3");
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
System.Windows.Forms.Application.Run(new Form1());
}
}
在表格中,它会是这样的:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.DataSource = Program.Shared.TestData;
}
}
其他形式将是相同的,您可以操纵两个表格中的数据,并且两个表格的数据都会更新。
希望这很有用。