ni.com is currently experiencing unexpected issues.
Some services may be unavailable at this time.
03-25-2021 12:01 AM
I have been trying to display multiple child windows in a MDI panel. But now i am struggling to implement a proper way to tile child windows in Horizontal, Vertical, Cascade forms. I am aware about the MGI toolkit for the same. But i am in a situation where i can't use such toolkit, but instead direct Dot Net Property methods. Please help.
03-25-2021 01:11 AM
Hi Bestin,
I expect you'll get better help (and you'll almost certainly get more help) if you attach a VI or set of VIs (via zip file) demonstrating what you've already done and ideally what you're trying to do.
Otherwise, you're more or less hoping someone will happen to have exactly what you want tucked away in a directory somewhere and will be willing to give it all away for free (sometimes this happens, but it's not that common, especially for complicated/unusual requests). Sadly for you, I expect that a .NET implementation of multiple cascading child windows in an MDI panel likely falls under "unusual" for most of us...
03-25-2021 02:47 AM
@cbutcher wrote:
Sadly for you, I expect that a .NET implementation of multiple cascading child windows in an MDI panel likely falls under "unusual" for most of us...
I would classify it as highly exotic.
No explanation either other than a “Trust me it is so!” why this absolutely has to be .Net and can’t be Windows API calls to handle child windows or simply LabVIEW splitters and or subpanels.
Not to mention that I hate MDI software with a passion. 😀
03-25-2021 04:44 AM
I am not allowed to share the code that i am working right now. But anyway, i wrote a simple replica of the code where you can understand the kind of problem . Sorry that the code is a little mess. Start the launch actor VI to run the application. Click new window on FP for adding Child Windows to the panel. The project file is attached.
03-25-2021 04:49 AM
Hello rolfk,
I want to add multiple child windows in a single panel, and the number of child windows may be varied according to user input. Is there any way other than MDI for such a need.
03-25-2021 05:19 AM - edited 03-25-2021 05:24 AM
@BestinB wrote:
Hello rolfk,
I want to add multiple child windows in a single panel, and the number of child windows may be varied according to user input. Is there any way other than MDI for such a need.
Not everything using child windows is necessarily MDI. Technically, in normal Windows WPF, MFC or even basic Windows applications, all of them use child windows for every single button, numeric control or anything. LabVIEW is different since it uses its own internal control object model. That's quite understandable since windows are under the hood VERY different under Windows, MacOS and Unix (XWindows) and not all of them use a window as basic object for implementing all the other objects.
MDI is, if you have a main shell and inside that you have a variable amount of more or less arbitrarily sizeable "document" windows that the user can drag around inside this main shell but not drag out of it. To me such applications always feel like someone is trying to bind my arms on my back while wanting me to use their software. My response so far to these attempts always has been "no thanks".
We have implemented applications with variable amount of waveform graphs in LabVIEW through the Picture control in the past. Up to 96 graphs visualizing various trends of a process from customers. It's a bit of work doing the initial waveform calculations yourself but if done right it is simply "write and test it once for a single graph, reuse as often as you need to in an application".
Trying to use .Net may often seem easy and cheap in comparison in the beginning, but it has certainly its own pits and sinkholes to get caught in.
03-25-2021 06:39 AM
Believe me, i have already spend a lot of time to find a neat path for accomplishing such an application, and only came to find MDI panel method at the end. Using MDI, i was able to stack number of VIs from top to bottom in a Parent panel where i can easily scroll to it . And not only to drag the child through the window , it is able to dock and undock child panels from the parent. I implemented custom graphs, XControls, Hovering effects and much user interactive processes in those child panels easily.
I have checked some picture ring examples before, but i think it will need a tremendous amount of work to implement these features using the picture ring method.
There are some property methods i found related to layout control of the MDI panels. But i don't know how to take them into action. There is no instructions, no help, nothing about them in anywhere.