我的窗體中有一個菜單欄和下面的空間來顯示我的控件。我的菜單欄中的其中一個按鈕是打印按鈕,打印當前位於用戶控件I中的圖形。如果圖形是打印按鈕的事件處理程序的窗體上我可能只是簡單地調用WinForms中的父窗體和子窗體用戶控件通信
graph.printing.print(true)
它是不會在我的情況下工作,因爲圖是在控制,而不是形式。
如何與包含表單的用戶控件進行通信並在需要時訪問或傳遞其變量?我還在表單底部有一個狀態欄,這個狀態欄也需要從用戶控件中更新,但是如果我能夠幫助完成這一部分的話,我將能夠處理這個問題。請記住,我還有另一個用戶控件,我將添加到表單中,該表單還將包含一個圖形,當按下打印按鈕時,該圖形需要與第一個控件上的其他圖形相同的處理。我計劃把這兩個交換出來,所以我有一種形式一次顯示一個控件。
我從這個答案得到了這個想法:https://stackoverflow.com/a/18191630/2567273但經過進一步的研究,我找不到任何人詢問表單和它包含的控件之間的實際通信過程。
我認爲this answer已經接近我正在尋找的東西,但我認爲它引導我使用面板代替用戶控制。
輸入後我發現最接近我的問題的答案可能是this,但該問題有孩子撫養事件和家長迴應,而我有父母提高事件,父母必須從孩子獲得信息。
無論從UC形式的需求應通過屬性或方法提供。當用戶點擊打印時,表單從控件獲取並打印**或**,因爲它顯然是由usercontrol管理的數據,只需在表單調用的UC上展示PrintGraph方法 – Plutonix
然後如果您有另一個UC也有一張可以打印的圖表,您只需使用相同的方法或屬性即可實現該功能。對? – Luminous
是的 - 您有這些用戶控制的原因:(理論上)它們是作爲管理和顯示foobar的專家而構建的。打印只是其中一項相關操作。卸載到表單可以工作,但可以是很多東西來回傳打印/處理/保存/上載的東西。由於表單是主機菜單,他的角色可以少得多該命令並將其傳遞給相關的演員。只是因爲表單確實有菜單,所以它不適合打印。 – Plutonix