6

C#Winform(VS 2010 / C#/ .Net 3.5)で、デザイナーにボタンを作成しました。そのフォームの起動時のユーザーの設定に基づいて、そのボタンを別の場所に移動してサイズを変更したいと思います。

フォームのloadイベントでは、ボタンを移動してサイズを変更するための次のコードがあります。

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 について質問する場合に非常に便利です。

*私はあなたの特定の問題が何であるかわからないので、この場合、正しい部分は正確ではないかもしれません

このプロジェクトのコピーを作成してみて、同じ問題が発生するかどうかを確認してください。そうでない場合は、プロジェクトに関するより多くの情報を得ることができなければ、私たちは本当にあなたを助けることはできません.

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 に答える