6

在我的 C# Winform (VS 2010 / C# / .Net 3.5) 上,我在设计器中创建了一个按钮。我想在启动该表单时根据用户的设置将该按钮移动并调整大小到不同的位置。

在我的表单加载事件中,我有以下代码来移动和调整按钮的大小:

btnShare.Location = new System.Drawing.Point(16, 496);
btnShare.Margin = new System.Windows.Forms.Padding(4);
btnShare.Size = new System.Drawing.Size(408, 126);

创建按钮的所有代码都是此特定表单的 *.designer.cs 文件。

问题是这样的:当表单加载时,我可以根据上面的 3 行代码在它的新位置看到按钮。但是当表单完成加载并完成所有事件时,按钮会返回到它的原始位置,该位置位于 *.designer.cs InitalizeComponent() 方法中。

我不想从 *.designer.cs 文件中取出代码并将其仅放入表单的 .cs 文件中,因为我仍然希望在设计表单时能够在设计器中看到按钮.

如果用户在加载表单时切换了该选项,我只想移动按钮并调整其大小。

我怎么能这样做,因为.Net似乎在加载事件处理后在我的表单上绘制按钮,从而将按钮移回原来的位置?

4

1 回答 1

12

这是我刚刚添加的一些代码。它对我有用。

这是一个 SSCCE,一个简单、独立的正确示例。在提出关于 SO 的问题时非常有用。

*由于我不知道您的具体问题是什么,因此Correct , 在这种情况下部分可能不准确

尝试复制这个项目,看看你是否遇到同样的问题。如果您不这样做,如果不了解有关您的项目的更多信息,我们真的无法为您提供太多帮助。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            button1.Location = new Point(40, 40);
        }
    }
}
于 2012-07-16T21:39:18.457 回答