在绘制按钮后,移动按钮的位置

时间:2012-06-26 18:47:44

标签: c# winforms

在我的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似乎在加载事件处理后在我的表单上绘制按钮,从而将按钮移回原来的位置?

1 个答案:

答案 0 :(得分:10)

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

这是一个SSCCE,一个简单,自包含的正确例子。在SO上提问时非常有用。

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

尝试复制此项目,看看是否遇到同样的问题。如果你没有,那么在没有获得有关你项目的更多信息的情况下,我们真的无法帮助你。

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);
        }
    }
}