PDA

View Full Version : آموزش: متن متحرک



keyvan723
چهارشنبه 09 بهمن 1392, 10:49 صبح
برای داشتن متن متحرک در صفحه میتونید از کد زیر استفاده کنید

private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = "شرکت ما همراه همیشگی شما";
label2.Location = new Point(label2.Location.X + 5, label2.Location.Y);

if (label2.Location.X > this.Width)
{
label2.Location = new Point(0 - label2.Width, label2.Location.Y);
}
}

keagineh65
چهارشنبه 09 بهمن 1392, 11:11 صبح
ممنون از محبت شما.دستور خوبی بود.

sagggad
چهارشنبه 09 بهمن 1392, 11:23 صبح
قشنگ اما ساده

sagggad
چهارشنبه 09 بهمن 1392, 11:35 صبح
اگه میخواید از تایمر استفاده نکنید
یک امکان دیگه هم داره:
تو حلقه اول میتونی تعیین کنی تا چه مدت این شکلی ادامه بده
برای سرعتش هم باید حلقه دوم رو کم و زیاد کنی
تو فرم لود این کد رو بنویسید


int i;
int b;
for (i = 0; i <= 10000; i++) {
this.Show();
Label2.Text = ("شرکت ما همراه همیشگی شما");
Application.DoEvents();
Label2.Location = new Point(Label2.Location.X + 1, Label2.Location.Y);
if (Label2.Location.X > this.Width) {
Label2.Location = new Point(0 - Label2.Width, Label2.Location.Y);
}

for (b = 0; b <= 10000000; b++) {
}
}

hamid_hr
چهارشنبه 09 بهمن 1392, 11:39 صبح
به جای حلقه دوم از thread.sleep استفاده کن

eletcomp
چهارشنبه 09 بهمن 1392, 12:39 عصر
private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = "شرکت ما همراه همیشگی شما";
label2.Location = new Point(label2.Location.X + 5, label2.Location.Y);

if (label2.Location.X > this.Width)
{
label2.Location = new Point(0 - label2.Width, label2.Location.Y);
}
}

سلام
کد جالبی باید باشه!!این کد را نوشتم ولی اجرا نشد!!کسی این کد را در قالب پروژه میتونه قرار بده!
سپاس

sagggad
چهارشنبه 09 بهمن 1392, 12:48 عصر
اولا باید تایمر رو روی فرم قرار بدی
دوما Enabeld = True

eletcomp
چهارشنبه 09 بهمن 1392, 13:08 عصر
ممنون مشکل حل شد

forodo
چهارشنبه 09 بهمن 1392, 13:39 عصر
سلام
این هم هست:
این کد یک متن رو از راست به چپ میاره و وقتی که از سمت چپ از فرم خارج شد از راست دوباره وارد می شود.
توی رویداد لود فرم این دوخط و شروع تایمر باید قرار داده شود:

lblX = label1.Location.X;
lblY = label1.Location.Y;


// رویداد تیک تایمر حرکت متن
private void timer1_Tick(object sender, EventArgs e)
{
//اگر متن از صفحه خارج شد
if (lblX == -((label1.Text.Trim().Length) * 11))
{
// دادن عرض فرم به متغیر
lblX = this.Width;
// تغییر مکان لیبل متن به نقطه مورد نظر
label1.Location = new System.Drawing.Point(lblX, lblY);
// کم کردن یک واحد از مکان عرضی لیبل متن
lblX--;
}
// داخل صفحه بود
else
{
// تغییر مکان لیبل متن به نقطه مورد نظر
label1.Location = new System.Drawing.Point(lblX, lblY);
// کم کردن یک واحد از مکان عرضی لیبل متن
lblX--;
}

}

forodo
چهارشنبه 09 بهمن 1392, 13:44 عصر
این هم برای اینکه متن به انتهای سمت راست که رسید به سمت چپ برگردد و به همین منوال راست و چپ شود ولی از فرم خارج نشود. شوت می شه این ور و اون ور.

int lblX = 0;
int lblY = 0;
private void Form1_Load(object sender, EventArgs e)
{
lblX = label1.Location.X;
lblY = label1.Location.Y;
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
label1.Location = new System.Drawing.Point(lblX, lblY);
lblX++;
if (lblX == label1.Text.Length*11)
{
timer1.Enabled = false;
timer2.Enabled = true;
}
}
private void timer2_Tick(object sender, EventArgs e)
{
label1.Location = new System.Drawing.Point(lblX, lblY);
lblX--;
if (lblX == -5)
{
timer1.Enabled = true;
timer2.Enabled = false;
}
}

eletcomp
چهارشنبه 09 بهمن 1392, 14:18 عصر
تشکر دوست عزیز: لطفا کد پروژه اش توی محیط C# بنویس و بزار!! اینجوری بهتر هست!
سپاس

forodo
چهارشنبه 09 بهمن 1392, 14:59 عصر
تشکر دوست عزیز: لطفا کد پروژه اش توی محیط C#‎ بنویس و بزار!! اینجوری بهتر هست!
سپاس
آموزش حرکت متن از راست به چپ، چپ به راست و حرکت داخل فرم (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=1964979&viewfull=1#post1964979)