PDA

View Full Version : سوال: قرار دادن کنترل textbox بر روی فرم



hamid_73
چهارشنبه 28 اسفند 1392, 13:08 عصر
سلام دوستان
من می خوام برنامه ای بساازم که وقتی اجرا میشه بتونیم از توی خوده برنامه درون آن کنترل هایی مانند textbox و اینا در هر جای فرم قرار بدیم مثله محیطه خوده ویژوال که کنترل ها رو روی فرم میذاره.
دوستان اگه ممکنه راهنمایی کنید.
واقعا نمی دونم باید دنباله چی بگردم:لبخند:

CsharpNevisi
چهارشنبه 28 اسفند 1392, 13:36 عصر
TextBox mohsen = new TextBox();
this.Controls.Add(mohsen);

NASA's Spaceman
چهارشنبه 28 اسفند 1392, 13:51 عصر
این از کد و اگه خواستی جا به جا کردنش در زمان اجرا کدش رو بهت میدم فعلا اینو تست کن خواستی بگو
با سپاس
private void button1_Click(object sender, EventArgs e) {
Label[] lbl =new Label[10];
int i;
for (i = 1; i < 10; i++)
{
lbl[i] = new Label();
lbl[i].Left = i * 10;
lbl[i].Top = i * 10;
lbl[i].Text = "Label" + i.ToString();
}
for (i = 9; i >= 0; i--)
this.Controls.Add(lbl[i]);
}

hamid_73
چهارشنبه 28 اسفند 1392, 19:30 عصر
این از کد و اگه خواستی جا به جا کردنش در زمان اجرا کدش رو بهت میدم فعلا اینو تست کن خواستی بگو
با سپاس
private void button1_Click(object sender, EventArgs e) {
Label[] lbl =new Label[10];
int i;
for (i = 1; i < 10; i++)
{
lbl[i] = new Label();
lbl[i].Left = i * 10;
lbl[i].Top = i * 10;
lbl[i].Text = "Label" + i.ToString();
}
for (i = 9; i >= 0; i--)
this.Controls.Add(lbl[i]);
}

نه داداش من انجوری نمی خوام باشه
من میخوام مثلا اون بالا یه نوار ابزار داشته باشم بعد مثلا روی تکست باکس کلیک کنم بعد تا وقتی که رو فرم کلیک نکردم کنترولو نذاره، مثله جعبه ابزار و فرم همین ویژوال استادیو دیدی چه جوری کار می کنه.

NASA's Spaceman
چهارشنبه 28 اسفند 1392, 19:46 عصر
به گمونم همین کارت رو راه بندازه فقط آرایه ای بودنش رو براساس نیازت تنظیم کن
این دو خط هم که موقعیتش رو مشخص میکنه که اگه عددش رو تغییر بدی جاش عوض میشه

;lbl[i].Left = i * 10
;lbl[i].Top = i * 10
با سپاس و تبریک سال نو و بهترین آرزو ها

CsharpNevisi
چهارشنبه 28 اسفند 1392, 20:43 عصر
نه داداش من انجوری نمی خوام باشه
من میخوام مثلا اون بالا یه نوار ابزار داشته باشم بعد مثلا روی تکست باکس کلیک کنم بعد تا وقتی که رو فرم کلیک نکردم کنترولو نذاره، مثله جعبه ابزار و فرم همین ویژوال استادیو دیدی چه جوری کار می کنه.

شما راهنمایی میخوایید یا خود کدو میخوایید ؟؟؟؟

hamid_73
چهارشنبه 28 اسفند 1392, 21:02 عصر
شما راهنمایی میخوایید یا خود کدو میخوایید ؟؟؟؟

خوده کدو :لبخند:
من می خوام موقعیت کنترلرو با موس تعیین کنم
هرج کلیک کردم اونجا کنترله ایجاد بشه

NASA's Spaceman
چهارشنبه 28 اسفند 1392, 23:02 عصر
رویداد mouse down موس رو برابر با top و left اون کد بالا قرار بده مشکلت حل میشه
*البته اینو من شخصا تست نکردم و فقط شنیدم
با سپاس

Mousavmousab
پنج شنبه 29 اسفند 1392, 00:42 صبح
باید از دو رویداد زیر کمک بگیری
MouseDown and MouseMove


و Location جدید به اشیاء انتخاب شده بدی.

hamid_73
پنج شنبه 29 اسفند 1392, 11:00 صبح
باید از دو رویداد زیر کمک بگیری
MouseDown and MouseMove


و Location جدید به اشیاء انتخاب شده بدی.

خب بعد چه جوری شرط بزارم که اگه مثلا روی دکمه تکس باکس کلیک شده بود اونوقت با کلیک روی فرم اضافه بشه.

CsharpNevisi
پنج شنبه 29 اسفند 1392, 11:10 صبح
طبق گفته دوست عزیزمون Mousavmousab (http://barnamenevis.org/member.php?176004-Mousavmousab) شما باید ازاین دو رویداد استفاده کنی ... !!!!

خب چون تکست باکست ران تایم ساخته میشه شمام باید براش ران تایم رویداد ایجاد کنی .... !!!!
خب برای این کار شما اول باید تو کلاس فرمتون روال مربوطه رو بنویسید و یه متغییر تعریف کنید که نشاندهنده وضعیت درگ میباشد :
bool IsDrag = false;

private void txt_MouseDown(object sender, MouseEventArgs e)
{
IsDrag = true;
}
private void txt_MouseUp(object sender, MouseEventArgs e)
{
IsDrag = false;
}
private void txt_MouseMove(object sender, MouseEventArgs e)
{
if (IsDrag == true)
((TextBox)sender).Location = new Point(Cursor.Position.X - this.Left-50, Cursor.Position.Y - this.Top-50);
}
خب حالا تو public Form1 کنترل رو بساز و بنداز روفرم ... !!!!!
public Form1() {
InitializeComponent();
TextBox txt = new TextBox();
txt.Name = "txt";
txt.MouseDown += txt_MouseDown;
txt.MouseUp += txt_MouseUp;
txt.MouseMove += txt_MouseMove;
txt.Cursor = Cursors.SizeAll;
this.Controls.Add(txt);
}
چیزی شبیه به تولباکس VS رو همین با این تفاسیر راحت میتونی بنویسی

Mousavmousab
پنج شنبه 29 اسفند 1392, 21:11 عصر
CsharpNevisi (http://barnamenevis.org/member.php?280820-CsharpNevisi) بابت توضیحات مرسی

hamid_73 (http://barnamenevis.org/member.php?u=269691) رویداد ها را عمیق تر بررسی کن

هر دوتاتون موفق باشید.
93تون مبارک