这是非常奇怪的。我移植了一个在 VS2008 下运行良好的项目,但是当我用 VS2017 构建它时,一行的存在导致我的对话框调整大小 - 代码甚至不需要运行,它只需要出现在一个子例程中跑!我已经创建了我可以想出的最简单的程序版本来显示这种行为。尝试在不同版本的 Visual Studio 下构建/运行。我希望解释为什么会发生这种情况以及如何解决它。谢谢。
using System;
using System.IO;
using System.Windows.Forms;
using System.Windows.Media.Imaging; // Need reference to PresentationCore
namespace Test2017
{
public class MainDlg : Form
{
[STAThread]
static void Main() { Application.Run(new MainDlg()); }
public MainDlg()
{
SuspendLayout();
var button = new Button { Location = new System.Drawing.Point(7, 56), Size = new System.Drawing.Size(263, 23), Text = "Note size before and after clicking" };
button.Click += Button_Click;
ClientSize = new System.Drawing.Size(282, 253);
Controls.Add(button);
ResumeLayout(false);
PerformLayout(); …
Run Code Online (Sandbox Code Playgroud)