PDA

View Full Version : برداشتن مختصات مکان موس برای چند بار



Fire_Falcon
چهارشنبه 25 آبان 1390, 10:40 صبح
دوستان میخوام برنامه ای بنویسم که مختصات مکان موس رو بهم نشون بده و با کلیک کردن جای کیلیک شده یه لیبل تولید کنه
تو قسمت این که مختصات موس رو هنگام حرکت نشون بدم مشکلی ندارم
فقط تو قسمت اینکه با کیلیک کردن موس مختصات برداشته بشه و لیبل ایجاد بشه مشکل دارم
یعنی فقط یک بار کیلیک رو میتونم نمایش بدم! و برای چند باز نمیتونم اینکار رو بکنم
اگه بخوام به طور نامحدود تا زمانی که مثلا کیلید buttonفشاد داده نشده مختصات بردارم باید چیکار کنم؟
ممنون میشم راهنماییم کنین
ممنون از همتون

solaleh
چهارشنبه 25 آبان 1390, 10:58 صبح
مشکلش چیه؟شاید متغیرتونو تو کلیک بعدی رفرش نمیکنین!!!!کدتونو بذارین وگرنه روش کلی تو همون پستی که خودتون زدین،جواب داده شده(http://barnamenevis.org/showthread.php?313461-تولید-لیبل-در-یک-مختصات-خاص)

Fire_Falcon
پنج شنبه 26 آبان 1390, 09:56 صبح
ممنونم
مشکلم حل شد
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 WindowsFormsApplication22
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "";

}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{

int x1 = e.X;
int y1 = e.Y;

label1.Text = "" + x1 + "," + y1;

}

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
int x2 = e.X;
int y2 = e.Y;
Label label2 = new Label();
Point p = new Point();
p.X = x2;
p.Y = y2;
label2.Location = p;
label2.Text = "" + x2 + "," + y2;
this.Controls.Add(label2);

}
}
}



ولی هنوز نمیتونم مختصا ت تمام لیبل ها رو ذخیره کنم!
میتونین راهنماییم کنین ؟؟
ممنون ازتون

solaleh
پنج شنبه 26 آبان 1390, 10:52 صبح
اگر منظورتونو متوجه شده باشم :

public Form3()
{
InitializeComponent();
}
int i = 0;
int[] Xcoordinate = newint[100];
int[] Ycoordinate = newint[100];
privatevoid Form3_MouseMove(object sender, MouseEventArgs e)
{
int x1 = e.X;
int y1 = e.Y;
label1.Text = "" + x1 + "," + y1;
}
privatevoid Form3_MouseClick(object sender, MouseEventArgs e)
{
Xcoordinate[i] = e.X;
Ycoordinate[i] = e.Y;
Label label2 = newLabel();
Point p = newPoint();
p.X = Xcoordinate[i];
p.Y = Ycoordinate[i];
label2.Location = p;
label2.Text = "" + Xcoordinate[i] + "," + Ycoordinate[i];
this.Controls.Add(label2);
i++;
}
privatevoid Form3_Load(object sender, EventArgs e)
{
label1.Text = "";
}

حالا این دو تا آرایه تمام مختصات لیبل ها رو داره...

Fire_Falcon
پنج شنبه 26 آبان 1390, 11:11 صبح
ممنون از راهنماییتون
ولی دلیل این کد رو نفهمیدم!

privatevoid Form3_Load(object sender, EventArgs e)

{

label1.Text = "";

}

solaleh
پنج شنبه 26 آبان 1390, 11:14 صبح
هیچی همین جوری برای محکم کاری... :چشمک: