我的窗体中有一个菜单栏和下面的空间来显示我的控件。我的菜单栏中的其中一个按钮是打印按钮,打印当前位于用户控件I中的图形。如果图形是打印按钮的事件处理程序的窗体上我可能只是简单地调用WinForms中的父窗体和子窗体用户控件通信
graph.printing.print(true)
它是不会在我的情况下工作,因为图是在控制,而不是形式。
如何与包含表单的用户控件进行通信并在需要时访问或传递其变量?我还在表单底部有一个状态栏,这个状态栏也需要从用户控件中更新,但是如果我能够帮助完成这一部分的话,我将能够处理这个问题。请记住,我还有另一个用户控件,我将添加到表单中,该表单还将包含一个图形,当按下打印按钮时,该图形需要与第一个控件上的其他图形相同的处理。我计划把这两个交换出来,所以我有一种形式一次显示一个控件。
我从这个答案得到了这个想法:https://stackoverflow.com/a/18191630/2567273但经过进一步的研究,我找不到任何人询问表单和它包含的控件之间的实际通信过程。
我认为this answer已经接近我正在寻找的东西,但我认为它引导我使用面板代替用户控制。
输入后我发现最接近我的问题的答案可能是this,但该问题有孩子抚养事件和家长回应,而我有父母提高事件,父母必须从孩子获得信息。
无论从UC形式的需求应通过属性或方法提供。当用户点击打印时,表单从控件获取并打印**或**,因为它显然是由usercontrol管理的数据,只需在表单调用的UC上展示PrintGraph方法 – Plutonix
然后如果您有另一个UC也有一张可以打印的图表,您只需使用相同的方法或属性即可实现该功能。对? – Luminous
是的 - 您有这些用户控制的原因:(理论上)它们是作为管理和显示foobar的专家而构建的。打印只是其中一项相关操作。卸载到表单可以工作,但可以是很多东西来回传打印/处理/保存/上载的东西。由于表单是主机菜单,他的角色可以少得多该命令并将其传递给相关的演员。只是因为表单确实有菜单,所以它不适合打印。 – Plutonix