【发布时间】:2019-04-16 22:28:13
【问题描述】:
我目前正在为一个学校项目使用 Winforms 制作 rpg。但是,我对课程的了解非常有限,以至于我无法制作一个合适的课程,该课程从一种形式中获取数据,用于第二种形式,然后发送回第一种形式。
我要完成的过程是这样的:
我一直遇到创建类的新对象的问题,并且第一个表单中的数据被重置。我将如何使用第一种形式的现有对象,或者创建一个引用类?
这是我想在第二个表单上的按钮被点击时在第一个表单上运行的函数。
public void SmallPot()
{
currentPHP += pHP * .25;
if (newPHP > pHP)
{
newPHP = pHP;
}
pHPBarUpdate = (int)(newPHP / pHP * 377);
pnlCurrentPHP.Width = pHPBarUpdate;
newPHP = currentPHP;
}
预期: 当我单击弹出窗体上的使用按钮时,它会关闭,并且项目效果会显示在主窗体上。
会发生什么: 由于我在表格二中新建了表格一的对象,所以我所有的变量在计算前都被重置为0,导致表格二关闭后什么都没有发生。
【问题讨论】:
-
处理这种情况的正确方法是通过events你的第二个表单定义一个事件,你的第一个表单订阅这个事件,你的第二个表单引发事件,你的第一个表单接收通知和订阅时给定的事件处理程序中所需的所有数据。
-
感谢您的快速回答!您是否碰巧有有关如何执行此操作的链接或在与我类似的情况下如何查看的示例?我们还没有在我们的计划中处理事件,任何关于如何做到这一点的参考都会有所帮助!此外,如果这最终解决了我的问题,请将其发布为答案而不是评论,以便我可以选择它作为我问题的正确答案:)