PDA

View Full Version : متن متحرک



tatu3882
شنبه 17 فروردین 1387, 09:48 صبح
با سلام
من می خواهم توی یکی از فرم هام یه متنی رو بصورت متحرک بسازم که از سمت چپ وارد بشه و از سمت راست فرم خارج بشه
و مجددا این کار تا زمان بسته شدن فرم ادامه پیدا کنه
با سپاس

hassan razavi
شنبه 17 فروردین 1387, 09:55 صبح
چندین راه وجود داره.
1- اضافه کردن Space به متنتون
2- تغیر خاصیت Location کنترلتون
3- استفاده از کلاس Graphic و DarwText
4- ...

البته باید از کنترل Timer هم استفاده کنید

hdv212
شنبه 17 فروردین 1387, 10:55 صبح
در این لینک کامپوننتی هست که به صورت تگ Marquee توی Html عمل میکنه، منتها این یکی توی دات نت :
Easy to use marquee control for windows form with full designer support (http://www.codeproject.com/KB/miscctrl/MarqueeControl.aspx)

armiya
یک شنبه 18 فروردین 1387, 20:06 عصر
سلام اگه این کار رو که اقای رضوی گفتند در حالت های مختلف فرم عملی نیست یعنی انداره فرم که بزرگ و یا کو چکتر بشه انو قت چه کار با ید کرد:چشمک:

razavi_university
یک شنبه 18 فروردین 1387, 23:31 عصر
سلام اگه این کار رو که اقای رضوی گفتند در حالت های مختلف فرم عملی نیست یعنی انداره فرم که بزرگ و یا کو چکتر بشه انو قت چه کار با ید کرد:چشمک:
جناب رضوی 3تا روش گفتن شما با کدوم روش مشکل دارین؟
در هر 3حالت تغییر اندازه فرم نمی‌تونه تاثیر زیادی داشته باشه:متفکر:
اندازه فرم که تغییر میکنه مقدارش هم در فیلد Size فرم تغییر می‌کنه.
شما مثلا در هنگام تغییر Location کنترلتون مقدار X رو از 0 تا Location.size.x بدین. در این حالت شما هر تغییری در سازتون بدین متن از سمت چپ وارد شده و از سمت راست خارج می‌شود.
برای روش‌های دیگری هم که جناب رضوی فرمودند به همین صورت عمل کنین
البته به نظر من برای این جابجایی یک Tread جدا در نظر بگیرید تا کارایی برنامتون صرف جابجایی متن نشه

m.soleimani
دوشنبه 19 فروردین 1387, 05:46 صبح
با سلام
من می خواهم توی یکی از فرم هام یه متنی رو بصورت متحرک بسازم که از سمت چپ وارد بشه و از سمت راست فرم خارج بشه
و مجددا این کار تا زمان بسته شدن فرم ادامه پیدا کنه
با سپاس

این برنامه یه لیبل را با متن دلخواه با استفاده از یک تایمر از سمت چپ فرم وارد میکنه و از سمت راست خارج میکنه و این کار تا پایان برنامه ادامه پیدا میکنه در مورد اندازه ها یکم کار کنى خیلى راحت این کار را انجام میده به تعغیر اندازه فرم هم کارى نداره


البته به نظر من برای این جابجایی یک Tread جدا در نظر بگیرید تا کارایی برنامتون صرف جابجایی متن نشه


البته اگر برنامه شما کارهاى زیادى انجام نمیده استفاده از Thread معنى نمیده ولى در صورت نیاز از نظر این دوستمون هم میتونى استفاده کنى


تعریف لیبل که میتونى تو محیط ویژوال به راحتى یه لیبل روى فرم بندازى ( نه که بلد نباشى اشتباه نکن من قصد دارم گیج نشى الکى برنامه را برا خودت بزگ کنى :اشتباه:)




this.lblMarque = new System.Windows.Forms.Label();



مقدار دهى لیبل به صورت فرض مثال




this.lblMarque.Text = "استفاده از ترد و تایمر در برنامه نوشته شده به زبان سى شارپ\r\n\r\n " +
" تهیه کننده : محمود سلیمانى";



توى رویداد تیک یه تایمر هم مینویسى




privatevoid timer_Tick(object sender, EventArgs e)
{
if (lblMarque.Left != this.Width)
{
lblMarque.Left += 20;
if (lblMarque.Left > this.Width)
lblMarque.Left -= lblMarque.Width + this.Width;
}
}




اگه باز مشکلى داشتى حتمآ بگو یه خواهش هم از دوستان داشتم آقا اینقدر یه مسئله را گنده نکنید طرف فکر کنه برا یه همچین کارى چه چیزایى که نباید یاد بگیره بعضى مواقع خیلى راحت تر میشه به طرف فهموند که اگه خودش سعى میکرد اینقدر ها هم سخت نبود :اشتباه:

gdevnb
دوشنبه 19 فروردین 1387, 06:22 صبح
البته اگر برنامه شما کارهاى زیادى انجام نمیده استفاده از Thread معنى نمیده ولى در صورت نیاز از نظر این دوستمون هم میتونى استفاده کنى

زمانی که برنامه درگیر کارهای سنگینی میشه برای اینکه متن متحرک به حرکت خودش ادامه بده نوشت Thread ضروریه.
دوستان کجا مسئله رو گنده کردنند؟؟
درضمن زمانی که سوالی پرسیده میشه راههایی مختلفی هم معرفی میشه تا بهترین جواب انتخاب بشه که این خودش یه مضیته.