フォームは、クリックして特定の場所にドロップする4つのラベルで構成されています。私はmovObjをタイプとして設定できる必要があります。 Label1 = movオブジェクト。私はこの質問をして、各ラベル名をmovObjに書きます。私は各ラベルのクリックイベントにこのコード全体を入れることができますが、コードはできるだけ短くするのが好きです。病気はドロップイベントを処理した後、私はこれを考え出したので、この質問はそれに関するものではありません。クリックしたラベルにmovObjを設定するだけです。その後、それはその所有に移ることができます。ヘルプは高く評価しました。C#Visual Studio Windowsフォームマウスを使用したオブジェクトの移動
private Point firstPoint = new Point();
public void INIT()
{
movObj.MouseDown += (ss, ee) =>
{
if (ee.Button == System.Windows.Forms.MouseButtons.Left) { firstPoint = Control.MousePosition; }
};
movObj.MouseMove += (ss, ee) =>
{
if (ee.Button == System.Windows.Forms.MouseButtons.Left)
{
//creates temp point
Point temp = Control.MousePosition;
Point res = new Point(firstPoint.X - temp.X, firstPoint.Y - temp.Y);
//apply value to object
movObj.Location = new Point(movObj.Location.X - res.X, movObj.Location.Y - res.Y);
//updates first point
firstPoint = temp;
}
};
}
このコードは、私が達成しようとしていることを今まで必要としていたのは初めてのことです。私はあなたが言ったようにparemneterを設定しようとしましたが、それは動作していません。これは、Windowsフォーム上の私のラベル名の1つに設定されているので、movObjと何か関係がありますか?私はちょうど私のコード内の型変数として保存することはできませんし、起動するために私のラベルの選択肢に書き込みますか?迅速な返信ありがとう – PaulD1983
私はあなたが達成しようとしていることを理解していません。あなたの質問を編集し、 'movObj'に値を代入するコードと正確に何をしたいのかを追加してください。 'movObj'が私のラベル名*にセットされていると言っているなら、"ラベル名 "はどういう意味ですか?ラベルコントロールそのものを意味するなら、あなたが提供したコードは必要ありません。はい、タイプ変数として保存することができますが、あなたが何を意味するのか分かりません。 –