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