I need to have multiline items, but then every other item height become same as multiline. I don't understand how to control it's height. On the picture below, 3 other items have same height as the first one, but they could be smaller. I see an AutoSize property in ToolStripmenuItem, but then I don't know which event I need to use to calculate it's height.
How to make variable height for ToolStripMenuItems in ContextMenuStrip?
105 Views Asked by Kosmo零 At
1
There are 1 best solutions below
Related Questions in C#
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in WINFORMS
- Musical chairs: How can an asynchronous task cancel a synchronous one in c#?
- TCP Client Losing Connection When Writing Data
- how check if printing content on new page
- Find what is writing to the Output window
- WinForms, event unable to subscribe from a custom class
- A cleaner way to approach the given output
- Working with panel and moving from the second form to the the panel
- Accurately placing multiple controls in a row programmatically with dynamic table layout panel
- How to find winform application in visual studio 2022?
- How to stop comments being included in C# release build .exe
- Why is the Blazor value not immediately being rendered after changing it?
- .NET 6 Winforms separate forms control pop up freezing when unfocused and using native Windows file transfer pop up
- How to Fix C# WinForms Application Not Loading correctly on Windows 11?
- Visual Studio edit view corrupt for xaml and Winforms design views
- How to solve the problem that dragged column in datagridview too slow or miss when AllowUserToOrderColumns = true
Related Questions in CONTEXTMENUSTRIP
- C# ContextMenuScript cause GCHandle leak and Memory Leak in .Net Framework
- How to make variable height for ToolStripMenuItems in ContextMenuStrip?
- .NET Winforms ContextMenuStrip TextBox functions but Focus:Enter, Leave, Validating, Validated events never fire
- ConextMenuStrip not GC-ed after being displayed (Windows Forms .Net Framework)
- ToolStripMenuItem.Checked property does not set C# WinForms
- How to remove checked margin in tray icon context menu
- Why is the option to add a ContextMenuStrip greyed out in the toolbox in Visual Studio 2022?
- Measure ToolStripItem in custom ToolStrip renderer
- Winforms' ContextmenuStrip and ChromiumWebBrowser
- C# how to get referece to ContextMenuStrip from underlying sub menuitems of at least two levels
- How to position a Popup Menu to the left side of a Button?
- ContextMenuStrip not copying to clipboard
- Why ContextMenuStrip is not opening at first time click from a button in C#?
- Stuck ContextMenuStrip In Bottom Of Form
- ContextMenuStrip disappears after a quarter second display
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?

An example, using a generic class that handles a standard ToolStripProfessionalRenderer object and overrides its OnRenderItemText() method to provide a custom, calculated size, of the MenuItems.
You could of course inject your own
ToolStripProfessionalRendererand also provide a custom ProfessionalColorTable, to define all colors of the ToolStrip (or derived classes, as the ContextMenuStrip) and its MenuItemsAn example here (coded in a slightly different language, but the notes and general description nonetheless apply): Change space between Image and Text in ContextMenuStrip
To make your ContextMenuStrip use this custom renderer, initialize with a ToolStripRenderer derived object (here, a standard
ToolStripProfessionalRenderer) and set its corresponding Property:Caveats:
I suggest setting the text of MenuItems in code, when this text should wrap to a new line.
You can insert line breaks (any of
\r,\nor\r\ncan do) to break the text in two or more lines.It's instead hard to do in the Designer. Both the ContextMenuStrip and the MenuItems auto-size themselves as the default behavior. You also actually want the ContextMenuStrip to auto-size to the provided overall heigh of child MenuItems, otherwise you have to do this yourself.
Also, the default rendering of the Item's text uses TextRenderer to render the text onto a Bitmap. One of the direct effects is that word-wrapping doesn't work, so setting a long string in the Designer doesn't cause the renderer to draw it in more than one line by itself (no matter whether you try to force it, setting custom TextFormatFlags).
You could use
Graphics.DrawString()yourself and bypass TextRenderer in the base class code, but the rendering is different (also, besides the scope of this post :)As mentioned, it's simpler to set the text of a MenuItem in code, forcing line breaks (just
\nhere):