LabWindows/CVI Idea Exchange

Community Browser
About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.

The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.

Top Kudoed Authors
User Kudos Count
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Personally I don't like the "unsorted" look of the libs as it is now. I always create a libs branch and put them there. This way the branch can be collapsed and saves space I don't have to scroll when having multiple projects in one workspace. Libs are files I don't edit that often so I don't have to see them all the time.

For every other file type CVI "knows" at the Add Files to Project sub menu, there is automatically a branch created - but not for libs.



  • Right now, the Break on»Library Errors function break happens for all library errors. I would like to suggest a more granular setting, i.e. break on file I/O errors, math errors, etc.


  • An additional (and most relevant) feature I suggest is the option to allow to temporarily exclude certain errors; let's say I have a loop doing some calculations and these calculations result in an ERANGE error, then it would be useful to get notified by the debugger, but only once for this loop, not 500 times... Hence after a break on library error I would like to have the (right click) option 'exclude further breaks of this function'. This should be valid for the current execution and be automatically reset when the program is restarted.


  • Also, the menu command should provide the possibility to override all SetBreakOnLibraryError functions.


Many thanks!



I miss a display format that will automatically switch from Floating Point to Scientific if the displayed number exceeds a certain threshold.


Lets say, 1 234 should be displayed as 1234, but 123 456 789 123 456 789 should be displayed as 1.2345 E17 because typically such a large number of digits is not meaningful. This display format is considered to be useful both for regular numeric controls but also for graphs, because right now very long numbers increase the frame size and decrease the remaining graph size. Of course, one could do this automatically, after plotting a new plot analyze the new plot for maxima and minima and then adjust the display format accordingly. What I suggest that this is done automatically, similar to the good old 'G' formatting option.


As a consequence, this new display format would require an additional attribute when to change from Floating Point to Scientific and vice verse, say NUMBER_OF_USEFUL_DIGITS. Default might be 6 digits.


I consider this wish important because right now, when plotting functions on a graph where the range is not known in advance, this may result in much too many displayed digits. Even 17 digits (resolution of double) will not be meaningful in most cases, while for numbers such as 12.5 there is no need to use an exponent...


Thanks a lot!

The option tooltip is very good feature what is the problem is it is only for the controls. If I want to show tooltip for listbox then it is fine but what if someone wants to show tooltip for active rows. It simply doesn't. 


This is very basic but one of the disadvantage of labview over .NET.


This needs to be fixed

As discussed here earlier I am using tooltips that show 'dynamic' information, e.g. the permitted data range of the respective control, available user actions..., These frequently depend on several other controls and parameters.


Right now, all other affected controls etc. need to call a function to re-build the tooltip text, and to more than 90% this is wasted effort because the tooltip text is changed again before it may get displayed...


Thus I would like to suggest a 'dimmer callback', similar to the menu dimmer callback. This 'tooltip dimmer callback' should be called just before the tooltip is going to be displayed, allowing to build/update the tooltip text only when needed.



Easy integration of MS .NET libraries is a highlighted feature LabWindows/CVI. However, programmatically interacting with the GAC from LabWindows/CVI is currently challenging and more worthwhile to do in other environments. A set of functions to programmatically interact with the GAC from LabWindows/CVI would create a more seamless experience for developers.  

Admittedly not a very urgent wish:


Since 2013 strings are displayed in the Array Display, see the screenshot below. I would consider it nicer if the fields would be of the same width, now there is a noticeable change from 9 to 10 and from 99 to 100...



variable view.png






When using the UI functions, a neat feature is the ability to pull up a dialog of valid control IDs when specifying the control:




clicking the elipses displays this dialog showing all valid control IDs:




If you are using the function panel however, you cannot access this dialog and you are on your own for figuring out the correct control ID:




I think we should add this functionality in the function panel for any function that has a control ID parameter.





while editing operations on a panel can be undone this seems not possible for menus. For example, if I have changed the item name of a menu in the UI editor this can not be undone using CTRL-Z. I have to remember my last action and undo it myself.



When working on laptops the room space in the UIR editor is relatively small compared to the size of actual wide desktop videos. Moreover, starting from CVI 2010 the user interface browser consumes additional room to the right of the editor, thus leaving only a few space to design/review panels.

It would be a good addition the possibility to preview an entire panel on the screen, with the ability to zoom in and out so that one can have an idea of the final aspect the panel will have.

I added the tab control into panel to my project. Overtime, I added 20 items into the single Tab Control. But since were so many items in the tab control, I decided to re-arrange items (indexes) in the tab control by either moving them left or right depending on the alphabetical order. But here is my problem.


Since I re-arranged the items (indexes), the indexes have all changed for all the items. Now I have to go everywhere the function GetPanelHandleFromTabPage is called and manually update the index numbers to match panel handles for the index. There are 20 different places where this could occur. The number of items (indexes) on the tab control could grow even more and may have to be re-arranged again in the future. Just a big pain.


Suggestion for improvement: Provide a another function that can obtain the index of the item on the tab control dynamically. This could be done by using the "Constant name:" issued in the edit tab panel of the edit tab control. So if the items (index) inside the tab control are re-arranged then the index value for that item is carried with the new index value.


Also the index would be included in the header file generated by the panel editor for CVI so that now the index value can be used thus eliminating the hard coded the index value.

I am happy to see that the suggestion of integrating the tooltips into the UI editor was successful. Now I would like to see better, more powerful tooltips Smiley Happy


In particular, I suggest


  • adding another tooltip attribute allowing the tooltip to disappear automatically after a given time (default of say 3-5 seconds); hence the tooltip would show up with the tooltip delay, show for this specified appearance time, and then disappear automatically. I think that this is the most frequently encountered behavior in other programs. Setting this attribute value to 0 or -1 would imply "show infinitely long"
  • adding an attribute TOOLTIPS_WIDTH that would allow for automatic linebreaks, similar to the behavior found in textboxes. Right now, tooltips get infinitely long if no line breaks are inserted manually. Linebreaks, however, depend on font size etc... The width should be specified in pixels (possibly with a default of say 400)
  • adding an attribute TOOLTIPS_WRAP_MODE, specifying the wrap mode (character/word/...) as in textboxes
  • the possibility of simple text formatting, such as bold or italics. For illustration have a look at the CVI UI editor control panel, e.g. of a text box. Click on the question mark in the upper right corner of the window and then on e.g. line mode: This shows a nice example of what I would like to have to better explain different options (of say a ring control) in a clear way
  • additional tooltips for column headers, row headers, even for every cell of a table: Tooltips of a complete table control may not always be useful, while I have several scenarios in mind where these added tooltips would be most useful: - explain the table columns: typically, due to space constraints, table headers are pretty brief and so extra information could be provided via tooltips for each individual column header. - if a table gets larger and is scrolled, table headers disappear: One could use tooltips (per column) to remind the user what he is actually seeing in column 17...


Thanks Smiley Wink





designing a screen layout I frequently encounter the wish to have not only rectangular (and circular) decoration elements, but also one of the type shown below.




Only the upper right rectangular shape can be realized now, while the more complex shape on the left is what I would like to see added in the future.

Instead of two parameters width and height four parameters would be required (two heights and two widths), may be even a fifth parameter specifying the orientation of the shape: as shown, mirrored in x, mirrored in y, mirrored in x and y.


Without doubt grouping control elements is useful; unfortunately these groups may differ in the number and type of control elements.


Thanks for consideration,



It seems that one cannot cut/copy/paste menu items between multiple menubars.  If I copy an item in one menu bar, exit the 'Edit Menu Bar' dialog, then open the 'Edit Menu Bar' dialog for another menubar the paste buttons are dimmed.  It would handy at times to be able to do this.  Thanks.

In previous applications, we would talk to our product using a telnet session.
CVI has libraries to do this, such as...


ConnectToTCPServer ((unsigned int *)&g_ShelfHandle[iSocketNumber], 23, sAddress, com_ClientTCPCB, NULL, 0);                                                                   

In one of our new products, it only supports "ssh" which is similar to telnet, but is a "secured shell" connection.
One option is to use putty:




It is not the most straightforward way of doing things, but at the moment, it is what we have to deal with.

Since the ssh protocol is becoming the new standard in communications (used in all Linux machines, and windows), and most
of the new telnet programs (supporting ssh), I would like to request that a CVI library be created to support this protocol.









Quickly find and open a file in your projects by typing in substrings of the name of the file.



Implement a quick way to find files in a CVI project, by typing substrings of the filename.

A certain keystroke combination should launch a popup-dialog (similar to the picture below), displaying the user a list of files that contain certain substrings. This helps significantly when having to deal with large projects containing many files.


Find File

The additional columns of a tree can be hidden using SetTreeColumnAttribute() with ATTR_COLUMN_VISIBLE parameter. This is an easy and effective way.

For a table this attribute isn't supported, so you can use some workaround that requires more coding and have some disadvantages (for example if you set the width to the minimum value of 1, the user can increase it with the mouse...).

I think that the ATTR_COLUMN_VISIBLE parameter would solve this needs in the perfect way.

The active configuration (Debug, Release, custom ones, ...) is shown in the bottom-right corner of the status bar (see attached config01.jpg).

I think that it would be better if this would be a menu ring that can be used to change the active configuration, without having to select Build >> Configuration >> xxxx (see config02.jpg)




Make sure ALL the function panels use the right controls 

For example in the CVIDynamicMemoryInfo function panel below, the "Options" parameter should not use the String Ctrl.

Instead it would be "safer" to use a list box, a ring or whatever make sense to display the two available choices :  DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY or DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY_SUMMARY

This would help to reduce the typo errors etc.

Regards, 40tude


I'd like to be able to use custom backgrounds for controls like knobs, dials, and gauges.  I'd also like to be able to change the needle image as well.