I wanted to tick a checkbox that is on a panel but the scrollbar resets to the top of the panel (Image of this in attachments) so I have to scroll back to check it again for each checkbox. Ideally, it should just tick the box without moving the scrollbar back up. When looking this issue up, I came up on this post Don't autoscroll on button click and it said to make a custom class that inherits the panel class and override the panel class and use that. So I tried messing around with this (Image 2 and 3) but have had no success, would be really grateful if I could get some helpenter image description here
enter image description here
enter image description here
Related
Can someone give me insight how can I achieve the form with panel title first and then menu bar below panel (barmanager). Because devexpress always put barmanager on top
Thank you
EDIT :
After I add standalonebardock, the result as picture shown below: the red bar is standalonebardock
UPDATE :
After I drag the barmanager menu into standalonedock, now it is already inside the dock. But the menu still on top docking, what I need how to make space above menu so I can write title/image/etc
The StandaloneBarDockControl control allows bars to be displayed at any position within the form, not simply docked to the form’s edge. To do this, create a StandaloneBarDockControl object and add bars to it. Bars can be added to the control at design time or runtime.
Setup
I have an Excel VBA UserForm with an Image Control element. When clicking on buttons in the form, the Image Control's Picture source is set / updated with the following code:
Set MyForm.imgControl.Picture = LoadPicture(pathToFile)
Problem
When the user clicks on the Image Control, updating its Picture source doesn't work anymore. The problem occurs, no matter when in the workflow the Image Control is clicked:
Example 1: User clicks a button to set the Picture (and pictures sets correctly). User clicks on Image Control. User clicks a different button to change the Picture -> displayed picture doesn't change.
Example 2: User clicks on Image Control right after Form load. User clicks on button to change the Picture -> displayed picture doesn't change.
If the user never clicks on the Image Control, everything works perfectly smoothly. It's worth noting that clicking on the Image Control doesn't visibly focus it.
Question
Clicking on the Image Control shouldn't make a difference in whether or not the Picture can be updated or not. How can this be done? Or, at least, does anyone know why the explained behavior is happening, or is it just a bug?
The Control does have Click / MouseDown / ... events (which are empty), but they don't take a Cancel parameter.
It does sound like a bug, as you say, but as a workaround, I'd suggest forcing a repaint after changing the picture:
Set MyForm.imgControl.Picture = LoadPicture(pathToFile)
MyForm.Repaint
Very strange issue in VB.NET. I have a simple WinForm that has a FlowControlPanel that takes up the entire form except for a status bar at the bottom. If I add enough items to my panel so that a vertical scrollbar is needed, then scroll to the bottom, anytime I update my status bar the panel automatically scrolls back to the top. Anyone ever see this?
Thanks,
Mark
I have a VB.NET form that dynamically creates a set of controls. If there are too many controls to view on the form, the form will show a scroll bar. (It is an autoscroll form.)
The user can scroll down and click a button which causes the form to change dramatically. It destroys all controls and draws new ones based on user input.
I've noticed that if the user is scrolled to the bottom of the form and click the button, when I destroy and create new controls they aren't located where I want them. It seems to put them relative to the visible portion of the form rather than the top of the top.
Example:
checkbox1.top = 50
checkbox1.left = 15
If the scrollbar is all the way at the bottom, the checkbox should be placed above the visible part of the form. Instead, it is drawn 50 pixels from the top of what I can see.
Please help. How do I make it place the control at an absolute location, rather than being relative to the current position of the scrollbar?
You have to compensate for the scroll position of the container control.
If a panel, then it would look like this:
checkbox1.Top = Panel1.AutoScrollPosition.Y + 50
Alternatively, you could just use a FlowLayoutPanel control, which would handle the placement of the controls for you.
When user clicks on the scroll bar arrow, the content shifts very slow(horizontal offset changes on 16). How can I increase the speed of shifting when I click on arrows?
(SmallChange doesn't work)
Unfortunately, it's quite hard-coded in the scroll viewer.
The only way I know of, is to make a new panel based on the panel that you want to use in the scroll viewer, and implement IScrollInfo for it.
Then, setting this panel as the content of the scroll viewer and setting CanContentScroll to true.
StackPanel implements IScrollInfo but other panels do not.