PDA

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



Fastdesign
دوشنبه 02 آبان 1390, 21:03 عصر
سلام


یک باتن در فرم دارم حالا من با این کد : این باتن را به سمت راست حرکت می دهم.

button1.Left += 5;
ولی در زمان حرکت از فرم هم می گذره.می خوام طوری باشه که از فرم نگذره.


اگه بخوام این باتن را در مرکز فرم قرار بدم باید براش چه کدی بنویسم؟

sobaisobai
دوشنبه 02 آبان 1390, 22:13 عصر
سلام دوست عزیز
کد زیر تو Tick تایمر بنویس
for (int i = 1; i <= this.Width / 2; i++)
{
button1.Left = i;
if (button1.Left == this.Width / 2)
timer1.Stop();
}

Fastdesign
دوشنبه 02 آبان 1390, 22:53 عصر
متشکرم از راهنمایی تون
ولی این کد فقط از چپ و راست وسط فرم قرار میده از بالا و پایین این کار نمی کنه.

nilmil_nil
دوشنبه 02 آبان 1390, 23:20 عصر
از بالا به پایین باید
به جای Left از Top استفاده کنی دوست من

sobaisobai
دوشنبه 02 آبان 1390, 23:25 عصر
میتونی با کد زیر هم انجامش بدی
int x = this.Width / 2;
int y = this.Height / 2;
button1.Location = new Point(x, y);

با کد زیر هم میتونی
button1.Left = this.Width / 2;
button1.Top = this.Height / 2;

Fastdesign
دوشنبه 02 آبان 1390, 23:45 عصر
حالا برای اینکه وقتی باتن را با کد بالا (پست یک) نوشته بودم حرکت می دم می خوام از فرم خارج نشه.یا اگه از فرم خاج بشه در طرف دیگر فرم اون باتن نمایش داده بشه باید چجوری براش بنویسم؟

sobaisobai
دوشنبه 02 آبان 1390, 23:50 عصر
سلام مجدد
for (int j = 0; j <= this.Width; j++)
{
button1.Left = j;
if (button1.Left == this.Width)
button1.Left = 0;
}

Fastdesign
سه شنبه 03 آبان 1390, 00:15 صبح
اگه نخوام از حلقه استفاده کنم آیا راه دیگه ای هم دارم برای این کار؟

sobaisobai
سه شنبه 03 آبان 1390, 00:26 صبح
با استفاده از While هم میتونی

ali_habibi1384
سه شنبه 03 آبان 1390, 00:27 صبح
البته لازم نبود اينقد كد بنويسيد! با همين يك خط هم ميشه:


for (int j = 0; j <= this.Width; j++, button1.Left = j % this.Width) ;

ali_habibi1384
سه شنبه 03 آبان 1390, 00:35 صبح
بدون حلقه بايد يه متغير سراسري تعريف كني و از اون توي رويداد تيك تايمر استفاده كني:


public int j = 0;
private void timer1_Tick(object sender, EventArgs e)
{
button1.Left = ++j % this.Width;

}

Fastdesign
سه شنبه 03 آبان 1390, 09:56 صبح
متشکرم از همکاری همه :
حالا چجوری بهش بگم وقتی باتن به انتهای فرم رسید بیاد به اول. با این کد نوشتم ولی جواب نمیده :
for (int j = 0; j <= this.Width; j++, button1.Left = j % this.Width) ;
شرمنده : اصلا با سی شارپ کار نکردم