从父表单调用子表单上的方法
我有2个表单ParentForm和一个子表单。在我的父窗体中,我有一个线程监听器,它监听更新ParentForm区域的feed。现在,我有一个ChildForm,它还需要将来自侦听器的数据放在ChildForm的一个区域上。线程监听器使用委托在获取feed时更新我的ParentForm。
我的ParentForm有这些。
private delegate void UpdateLogCallback(string strFeed);
private Thread thr;
private void InitializeFeed()
{
...
// Get the feed connection
...
thr = new Thread(new ThreadStart(ReceivedFeeds));
thr.Start();
}
private void ReceivedFeeds()
{
string strFeed = GetFromStream();
// invoke my updater while connected
while(Connected)
{
this.Invoke(new UpdateLogCallback(this.UpdateLog), new object[] { strFeed });
}
}
private void UpdateLog(string strFeed)
{
txtLog.AppendText(strFeed + "rn");
}
这很好,现在问题就在这里。当我从ParentForm打开一个ChildForm时,我还想使用我从ParentForm中的ReceivedFeeds()
得到的内容来更新该表单的一部分,我将如何实现这一目标?我无法在ChildForm中创建另一个Feed连接,因为这将复制Connection并导致错误。我只想做与F2ѭ在ChildForm中做的事情一样的事情。
编辑
我打电话给ChildForm在父表单上打开一个OnClick
事件并显示它。
// onclick event
ChildForm childForm = new ChildForm();
childForm.Name = ((ListBox)sender).SelectedItem.ToString();
childForm.ShowDialog(this);
这就是我打开ChildForm的方法,如何在我的UpdateLogCallback
或我的UpdateLog()
中调用ChildForm中的方法
我的ChildForm中也有一个UpdateLog()
方法。
没有找到相关结果
已邀请:
4 个回复
擅香
方法
编辑: 此外,如果您有许多子表单,您可以拥有它们的集合。只需确保在关闭时将其从列表中删除。
屑凉赦
闪票仇门韧
诞胃
之后):
现在添加一个子窗体的方法,如下所示:
在父表单中声明一个这样的事件:
根据您将数据传递给子表单的需要,您可能需要创建自定义类处理表单
。显示这样的子表单: