我无法理解这个可能很简单的任务,我有两种形式,我的主要和一个"足迹"一,在脚印中,我有一个加载了各种.txt文件的组合框,一旦我选择了一个组合框值,我试图将值发送到主窗体1上的标签。
表单2的代码:
private void btnUpdateFootprints_Click(object sender, System.EventArgs e)
{
if (File.Exists(@"LogicFiles\footprints.txt"))
{
// add footprints and add to .txt box
File.WriteAllText(@"LogicFiles\" + comboBoxUseFootprints.Text, txtBoxFootprints.Text);
FormMain.lblFootprintsUsed.Text = comboBoxUseFootprints.Text;
this.Hide();
}
}
这部分" lblFootprintsUsed.Text"是表单1上的标签名称,上面的代码在一个按钮中,一旦点击它应该隐藏和更新标签,我得到:
非静态字段,方法或属性需要对象引用' FormMain.lblFootprintsUsed'
我尝试了一些事情,但说实话,我从来没有完全了解如何在不制作新的表单实例的情况下引用表单。
感谢任何帮助人员
格雷厄姆
答案 0 :(得分:0)
FormMain.lblFootprintsUsed
此代码正在尝试设置FormMain的静态标签。但是(如果我错了,请纠正我)你没有那种形式的静态方法。
我猜FormMain是创造脚踏形式的那个。为了实际更新主窗体的标签,您应该使用新值从footpronts窗体中引发一个事件,并从主窗体中订阅它。
http://www.codeproject.com/Tips/55555/Pass-value-between-forms-using-events