回 帖 发 新 帖 刷新版面

主题:调用另一个窗体的孔件?

请问大虾如何实现下列功能?
主窗体frmMain有标签lab1,我想在另一个窗体调用主窗体的public方法,该方法传入一个参数string sMsg 根据传入的字符串,修改标签frmMain的lab1.Text=sMsg 
不成功?
我将lab1 变量设置为public label1 lab1也不成功?

回复列表 (共4个回复)

沙发

首先把主窗体的lab1设为非私有的,再把该窗体作为另一个窗体构造函数的参数(就是让它作为该窗体的一个字段),这时你的另一个窗体就能引用主窗体上的lab1了

如果你想在窗体2中编写一个函数直接修改lab1同样要把主窗体传给该窗体

板凳

具体怎么弄 介绍一下 我现在问题差不多 我想通过点击父窗体工具栏的按钮 操作子窗体datagrid控件内的数据

3 楼

如果要写lable的话,在lable的窗体里写一个属性
private string stText
public string Text
{
   get
   {
      return this.stText;
   }
   set
   {
      this.stText = value;
      this.lable.Text = this.stText;
   }
}
调用窗体的时候把这个属性副值就可以了...

如果是要填充子窗体的DataGrid的话,在子窗体里写一个public的方法就可以了嘛....

4 楼

两个窗体之间的任何操作都要把被调用窗体的对象传给调用的窗体作为自己的字段,
传递的简单代码如下,其他的功能搂主可以自己实现了吧。
public partial class ChildForm : Form
    {
        public ChildForm(MainForm mainform)
        {
            this.mainform = mainform;
            InitializeComponent();
        }

        private MainForm mainform;

        public void change(string s)
        {
            mainform.label.Text = s;
        }

    }

    public partial class MainForm : Form
    { 
        public MainForm()
        {
            InitializeComponent();
        }
    }

我来回复

您尚未登录,请登录后再回复。点此登录或注册