Undesireable Windows Form Resizing in Visual Studio 2010 - winforms

I've been working on a project in Visual Studio 2010 creating a large Windows form using C#. What's getting me is that whenever I feel I need a change to the layout of the form and open it in designer view, it will resize to a slightly smaller set of dimensions. Every time it does this I have to restore the size and relocate some of the panels as they get out of position. Would anyone know why this keeps happening? I've had to keep the designer window closed when not working in it because it will resize when I launch the project in Visual Studio, as well, if the view was left open when I last closed the project.

I am looking for that answer too. Here is something that may be similar to your question? visual studio 2005 designer moves controls and resizes Form

I had this problem in my project too.
Form Properties;
AutoScaleMode = Font
ControlBox = False
FormBorderStyle = FixedSingle
MaximizeBox = False
MinimizeBox = False
ShowIcon = False
ShowInTaskbar = False
StartPosition = CenterParent
I set my form size to 485:210. I save and close the form. I re-opened the form and size of the form changed to 481:206. I had no idea why this was happening.
First I searched around and couldn't find the solution.
AutoScaleMode set to Font in my forms.
Windows resolution is 1360 x 768.
I tried AutoScaleMode properties set to None, but the form size changed again. I changed Dpi but the result was same. I tried to use Docking for all controls in the form, but the result was same. I tried all answers which I found in stackoverflow.
I dont have any problem with my other forms. Then I realize that my other forms has ControlBox.
Then I set ControlBox properties to True. The size of the form not changed this time.

Related

Are TextBox.BorderStyle = FixedSingle or Fixed3D deprecated?

I use 2 Textboxes in a Windows Form using Visual Studio 2019.
For first TextBox, BorderStyle is set to FixedSingle and for second, BorderStyle is set to Fixed3D.
I obtain following display
Apart left margin, I don't see any difference !
Question: What is difference between FixedSingle and Fixed3D ?
Since, I don't see any 3D effect, is Fixed3D deprecated ?
Is there another properties or parameters to assign for TextBox or Form to see 3D effects ?
On Visual Studio 2022 and Windows 11 using .Net6.0 WinForm application, this difference doesn't exist anymore !
when 3D TextBox has focus
Using EnableVisualStyles() is not more necessary (for TextBox) !

How to change the default font of the form controls in Visual Studio IDE

I would like to set the default font of the form components from Microsoft Sans Serif to MS Outlook
I can change the font every time I put a new control on the form but its time consuming. I didn't find any help or options for it in the Visual Studio 2012.
How can I change the default font for any added control?
Many Controls you add to a Form, default to some of the Form's properties. That includes the Font of the Form as well as its BackColor. This comes handy if you want to use, say Consolas,10 for all Controls..
Here is MSDN on these 'ambient properties'..:
An ambient property is a property on a control that, if not set, is
retrieved from the parent control. If the control does not have a
parent and the property is not set, the control tries to find the
value of the ambient property through the Site property. If the
control is not sited, the site does not support ambient properties, or
the property is not set on the AmbientProperties object, the Control
uses its own default values. Some objects derived from the Control
class might set the property even if you do not. For example, the Form
class always sets the ForeColor and BackColor properties.
TextBoxes and some other Controls don't get the Backcolor, though.
Note: Changing the Form's font will change those 'inherited' Fonts of all Controls on the Form, including TextBoxes, Lists etc. Those properties you have set directly will not change, though.
So: If you want to use varying Fonts, get the Form's Font right first and try to avoid an uncontrolled mix of default and set values! (You can check which you have set in the From.Designer.cs file..)
I have the same question which bothers me very much, and I can not find the solution for months. Today I finally find a possible solution using my limited concepts on c#.
Back to the topic, just add the 2 lines below in the file "form1.designer.cs", which is in the installation directory of visual studio. My visual studio 2010 have the directory like this :
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows\1033\WindowsApplication.zip
using System.Drawing; ///this line on top of all
this.Font = new Font("Arial", 16); ///this line in the InitializeComponent()
There are some side effects because some properties rely on the font size, such as the form size will grow because of the Form's AutoScaleMode, default size of button/textbox would be not suitable as you know... But it is not a big issue. A nice programmer could solve this kind of issue by himself.
In this manner you could change anything, such as button/lable font, color... All depend on your imagination.
This is my first post. I hope it helps some guys like me.
The easiest way i found is find and replace feature.
Just double click an item lets say a command button then inside the code hit Ctrl +F to find "font". after you find which default or current font is in use, now broaden the Find to Find and Replace and now replace with your desired font.

Designer automatically re-sizes form when certain properties are set

I am facing an issue where a WinForms form is being automatically re-sized every time the designer is opened.
This only appears to happen with a certain setup, however it can easily be replicated with the following steps...
Create a new project in visual studio
The default form size is 300 x 300, but whatever you set it to make a note
Set the FormBorderStyle property to FixedSingle
Set the ShowIcon property to false
Set the ControlBox property to false
Save the changes
Close the designer
Re-open the designer and you will notice the form has shrunk by 4 pixels (both width and height)
The problem I have with this is that when it happens it does not resize any of the controls (i.e. the ones set with anchors), so this means I end up with controls that overlap the form edge and everything needs to be manually readjusted every time I open the designer which is a pain.
So the question is: Why is this happening, and what can I do to stop it happening?
I am currently using Visual Studio 2012 Professional, and John Willemse has confirmed via comments that this issue is also present in Visual Studio 2010 Professional.
I see it, this should be a bug in any VS version. It is caused by the ShowIcon property, the designer doesn't handle it correctly when you set it to False. At issue is a bit of code in the Form class that looks like this:
FormBorderStyle borderStyle = FormBorderStyle;
if (!ShowIcon &&
(borderStyle == FormBorderStyle.Sizable ||
borderStyle == FormBorderStyle.Fixed3D ||
borderStyle == FormBorderStyle.FixedSingle))
{
cp.ExStyle |= NativeMethods.WS_EX_DLGMODALFRAME;
}
In other words, when ShowIcon is False then it uses a different border style from WS_BORDER, it uses the one of a modal dialog. Which has different borders on older Windows versions, they are fatter. Not exactly sure what inspired this code, probably has something to do with Windows 98.
Problem is, the Size property is a calculated value, the Winforms designer only stores the ClientSize property. So when ShowIcon is False then it should redo this calculation, it doesn't.
You can report the bug at connect.microsoft.com but the odds that Microsoft is going to fix it are exceedingly low so it would probably be a waste of your time. There is a very simple workaround for it, instead of setting ShowIcon to False in the Properties window, do it in the constructor instead. Like this:
public Form1() {
InitializeComponent();
this.ShowIcon = false;
}

ElementHost not refreshing after workbook moved over it in Excel 2010

I have wierd issue with ElementHost on CustomTaskPane in Excel 2010 32bit on Windows 7 x64, .NET 4.0
Control inside Host (or host itself) is not repainted after workbook window was moved around.
To illustrate this I have created sample:
_host = new ElementHost { Dock = DockStyle.Fill, BackColorTransparent = false, BackColor = Color.Blue };
_userControl = new UserControl();
_userControl.Controls.Add(_host);
_taskPane = CustomTaskPanes.Add(_userControl, "Pane");
_taskPane.Visible = true;
I've omitted child control for simplicity, as result is the same.
Here is how it looks as expected:
Now I moved workbook around a bit, and I get:
Obviously grey and black areas are not expected (same result with actual control hosted). _host refresh fixes the issue -- repaints itself and child, but problem is I didnt find any event in VSTO to detect when workbook was moved.
Questions:
Where do those black/grey areas come from?
Is it possible to avoid/fix it and how?
(as a workaround) Is it possible to detect workbook window movement so I can refresh _host and pray its the only scenario it happens? (bad idea)
Other tests shows that windows forms controls doesn't suffer from this behaviour.
Thanks in advance.
You should put a true XAML user control into the ElementHost.
In your WPF user control, make a grid with background color = blue.
Don't rely on element host itself
Also check updates, elementHost in VSTO gets lot of bugs.

Expression Blend is blocked / locked / malfunctioning?

I am experiencing some very strange behavior with Blend:
Since weeks i am working an a project where I use Blend 4 and Visual Studio 2010 simultaneously. I've never experienced problems with one of these programs or with their co-existence. Work proceeds fine.
But a few minutes ago - from one boot of the computer to the next - Blend seems to have a serious problem:
From now on I am not able alter any value anywhere in my project. I can't create new Controls on a plain surface as well delete existing ones. If i try to alter some attribute of some existing control, the width of an existing button for example nothing happens:
Drag and Drop with the mouse results in nothing more than a slight flickering of the control which looks like if it is fighting against my modification to retain its current value. Regardless what manipulation I apply with the mouse the control stays untouched neither does any value in the properties-panel of Blend change.
It feels as if my project is in read-only mode or locked somehow.
But now comes the frustrating fact: When I apply the modifications described above nothing changes BUT the corresponding XAML code does! Enlarging the width of a button with the mouse doesn't show any effect at the control itself or in the properties pane but the XAML attribute width is changing as I move the mouse ?!
Did anybody also experience this behavior before ? Does anyone has some suggestions ? Maybe the solution is very obvious and just made a fool of myself but I got really stuck with that problem - so any help or suggestions are very much appreciated ... Thanks in advance !
EDIT: It really seems to be a Blend problem because when I open the project in Visual Studio everything is working as it should ...
Are you certain that there is not a control sitting on top of the others?
Alternatively, are your other controls in a panel (perhaps a grid) that has it's visibility set in a trigger? If so, Visual Studio displays controls visibility a little differently than Blend does. Blend attempts to get the property to which you bound your visibility during design time, whereas Visual Studio seems to display the item so long as you have visibility initially set to visible.
Can we see some code to make sure?

Resources