PDA

View Full Version : نمايش خودكار متن



oranoos_mt
جمعه 23 اردیبهشت 1390, 21:51 عصر
چطوري ميشه وقتي روي يه button رفت متني كه واسه كليك كردن button در نظر گرفته شده بصورت خودكار بدون اينكه كليك كنيم روش نمايش بده؟
مثلا تقويم رو در نظر بگيريد. وقتي طرف بره روي يه تاريخ خاص، خود بخود مناسبت اون روز نمايش داده ميشه
اگه كسي بلده خواهشا كمكم كنه

omn!a2
سه شنبه 27 اردیبهشت 1390, 10:45 صبح
سلام

برو تو قسمت Events روی GotFocus دو بار کلیک کن:


private void button1_GotFocus(object sender, EventArgs e)
{
button1.Text = "Test";
}

موفق باشی

oranoos_mt
سه شنبه 27 اردیبهشت 1390, 18:06 عصر
سلام

برو تو قسمت Events روی GotFocus دو بار کلیک کن:


private void button1_GotFocus(object sender, EventArgs e)
{
button1.Text = "Test";
}

موفق باشی

مرسي بابت جواب.
ولي بهتر بود من سوالمو اينجوري ميپرسيدم : من يه تقويم دارم درست ميكنم با win mob .
ميخواسم بدونم روزهارو با چه كامپوننتي بذارم بهتره (button , picture , text , ...)
براي مرتب كردنشون از panel استفاده كنم يا را ديگه اي هست؟
چطوري بين روزها حركت كنم؟ (من اين به فرم رسيده كه مثلا يه button بذارم روي يكي از روزها بعد بيام event فلشهاي جهت نما رو درست كنم كه مثلا اگه button روي 2 باشه وقتي كليد چپ زده شد button بره روي 3) .
به نظر خودم اين روش خيلي بده چون اصلا نميدونم جواب بده يا نه و همچنين وقتي button روي يكي از روزها باشه شماره روز پشت button ميمونه و معلوم نميشه
در ضمن من كدي كه بشه حركت button رو شبيه سازي كنه بلد نيستم
كلي بگم چطوري ميشه حركت با فلش ها رو شبيه سازي كرد؟

omn!a2
چهارشنبه 28 اردیبهشت 1390, 04:31 صبح
سلام

خیلی از چیزایی که گفتی سلیقه ایه ...
تو میتونی عکس برنامت رو بذاری تا ببینم چه جوریه اینجوری نمیتونم نظر بدم

بله میتونی از panel استفاده کنی

هر کدام که راحت تره از اون استفاده کن

برای جابجای دکمه ها روشهای زیادی وجود داره

اگر میخوای از کنترلهایی که قابلیت فاکوس دارند مثل دکمه ها استفاده کنی میتونی تو رویداد Gotfocus دکمه ها این کد رو بنویسی:

private void button2_GotFocus(object sender, EventArgs e)
{
//این کد باعث میشود با فاکوس شدن این کنترل، button1 بر روی این کنترل قرار بگیرد
button1.Location = new Point(button2.Location.X, button2.Location.Y);
}

این کار رو روی تک تک کنترلها انجام بده...

اگر میخوای از کنترل تکست باکس استفاده کنی چون با فاکوس شدن یه تکست باکس دیگه نمیتونی با زدن کلیدها از اون خارج بشی میتونی تو رویداد KeyDown مربوط به تکست باکس این کد را بنویسی:


private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode == System.Windows.Forms.Keys.Left))
{
button1.Location = new Point(textBox1.Location.X, textBox1.Location.Y);
textBox2.Focus();
}

با این کد وقتی روی تکست باکس 1 کلید چپ رو بزنی button1 روی textbox1 منتقل میشه و تکست باکس 2 فاکوس میشه همین کار رو روی بقیه ی تکست باکسها انجام بده
همانطور که گفتم روشهای زیادی داره
به نظر من اگه تعریف روزها رو تو یه Label پایین بذاری بهتره یعنی هر روزی که انتخاب شد تعریفش تو Label نوشته بشه

موفق باشی

oranoos_mt
چهارشنبه 28 اردیبهشت 1390, 12:21 عصر
سلام

خیلی از چیزایی که گفتی سلیقه ایه ...
تو میتونی عکس برنامت رو بذاری تا ببینم چه جوریه اینجوری نمیتونم نظر بدم

بله میتونی از panel استفاده کنی

هر کدام که راحت تره از اون استفاده کن

برای جابجای دکمه ها روشهای زیادی وجود داره

اگر میخوای از کنترلهایی که قابلیت فاکوس دارند مثل دکمه ها استفاده کنی میتونی تو رویداد Gotfocus دکمه ها این کد رو بنویسی:

private void button2_GotFocus(object sender, EventArgs e)
{
//این کد باعث میشود با فاکوس شدن این کنترل، button1 بر روی این کنترل قرار بگیرد
button1.Location = new Point(button2.Location.X, button2.Location.Y);
}

این کار رو روی تک تک کنترلها انجام بده...

اگر میخوای از کنترل تکست باکس استفاده کنی چون با فاکوس شدن یه تکست باکس دیگه نمیتونی با زدن کلیدها از اون خارج بشی میتونی تو رویداد KeyDown مربوط به تکست باکس این کد را بنویسی:


private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode == System.Windows.Forms.Keys.Left))
{
button1.Location = new Point(textBox1.Location.X, textBox1.Location.Y);
textBox2.Focus();
}

با این کد وقتی روی تکست باکس 1 کلید چپ رو بزنی button1 روی textbox1 منتقل میشه و تکست باکس 2 فاکوس میشه همین کار رو روی بقیه ی تکست باکسها انجام بده
همانطور که گفتم روشهای زیادی داره
به نظر من اگه تعریف روزها رو تو یه Label پایین بذاری بهتره یعنی هر روزی که انتخاب شد تعریفش تو Label نوشته بشه

موفق باشی

70052

مرسي كه كمكم ميكني.
من كارهايي كه شما گفته بوديد انجام دادم. تا يه جايي خوب پيش رفت اما وقتي خواستم شرط بذارم براي وقتي كه كليد چپ رو زدم (كد زير) :


private void frkhor_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode == System.Windows.Forms.Keys.Up))
{
// Up
}
else if ((e.KeyCode == System.Windows.Forms.Keys.Down))
{
// Down

}
else if ((e.KeyCode == System.Windows.Forms.Keys.Left))
{
// Left



if (button2.Location == Point(135, 92))
{
button2.Location = new Point(103, 92);

}
else if (button2.Location == Point(103, 92))
{
button2.Location = new Point(72, 92);

}
else if (button2.Location == Point(72, 92))
{
button2.Location = new Point(41, 92);

}
else if (button2.Location == Point(41, 92))
{
button2.Location = new Point(10, 92);

}
else if (button2.Location == Point(10, 92))
{
button2.Location = new Point(196, 116);



}

}
در اينجا (خط هاي 18-40) خطا (exeption) رخ ميده و ديگه نتونستم درست كنم.

يه سوال ديگه : چطوري ميشه وقتي buttun روي يه روزي قرار ميگيره شماره پشت button نشون داده بشه؟ (به نظر بايد شماره روز رو به button نسبت بديم احتمالا)
كد برنامه رو هم ميذارم ببين كجاي كارم ايراد داره :
لينك :
http://www.pic.iran-forum.ir/images/828fv6msl12p9y6dyxt6.rar

يا
http://www.up.98ia.com/images/pggrkifkrq535mroixu.rar

يا
http://www.jetup.ir/do.php?filename=18_05_1113057063331.rar

يا از طريق بالا

oranoos_mt
چهارشنبه 28 اردیبهشت 1390, 18:32 عصر
اقا درست شد. واقعا ممنون
فقط يه مشكل ديگه كه اگه حل بشه ديگه مزاحم نميشم.
من يه كامپوننت button به صورت 3D ميخوام كه با استفاده از اين باتن بين روزا حركت كنم. 3D ميخوام واسه اينكه برنامه قشنگ تر بشه.
كسي داره يه چنتا كامپوننت قشنگ بهم بده يا آدرس بده برم دانلود كنم؟ teletic رو دانلود كردم ولي روي كامپوننت هاش نوشته trial و نميشه باهاشون كار كرد

omn!a2
چهارشنبه 28 اردیبهشت 1390, 21:48 عصر
سلام
بله مشکل از این بود (button2.Location == Point(135, 92)) که باید اینجوری مینوشتی

if (button2.Location == new Point(135, 92))

چرا از PictureBox استفاده نمیکنی؟ من این کار رو با پیکچرباکس انجام دادم تصویر پیکچرباکس متحرک رو با تصویر پیکچرباکس روزهای تقویم که زیرش هست رو برابر کردم قشنگ شد میتونی همین pictureBox سایزش رو بزرگتر کنی تا روز انتخاب شده مشخص بشه


if (pictureBox50.Location == new Point(133, 89))
{
pictureBox50.Location = new Point(100, 89);
pictureBox50.Image = pictureBox25.Image;
}

اینجوری میشه

70078

میتونی تنظیم SizeMode پیکچرباکس را به CenterImage و رنگ باکس رو به رنگ دلخواه مثلا سبز تغییر بدی که اینجوری درمیاد

70079


در مورد اون باتن 3بعدی اگه پیدا کردم حتما بهت میدم
سوالی بود در خدمتم...
موفق باشی

omn!a2
چهارشنبه 28 اردیبهشت 1390, 22:01 عصر
تکراری.........

oranoos_mt
پنج شنبه 29 اردیبهشت 1390, 00:43 صبح
سلام
بله مشکل از این بود (button2.Location == Point(135, 92)) که باید اینجوری مینوشتی

if (button2.Location == new Point(135, 92))

چرا از PictureBox استفاده نمیکنی؟ من این کار رو با پیکچرباکس انجام دادم تصویر پیکچرباکس متحرک رو با تصویر پیکچرباکس روزهای تقویم که زیرش هست رو برابر کردم قشنگ شد میتونی همین pictureBox سایزش رو بزرگتر کنی تا روز انتخاب شده مشخص بشه


if (pictureBox50.Location == new Point(133, 89))
{
pictureBox50.Location = new Point(100, 89);
pictureBox50.Image = pictureBox25.Image;
}

اینجوری میشه

70078

میتونی تنظیم SizeMode پیکچرباکس را به CenterImage و رنگ باکس رو به رنگ دلخواه مثلا سبز تغییر بدی که اینجوری درمیاد

70079


در مورد اون باتن 3بعدی اگه پیدا کردم حتما بهت میدم
سوالی بود در خدمتم...
موفق باشی

واقعا دمت گرم. خيلي كمكم كردي. خيلي گل كاشتي. با اين پيكچر باكسي كه گفتي ديگه نيازي به باتن 3بعدي هم ندارم. خيلي ممنون
واقعا نميشه كمكاتو جبران كرد فقط تنها كاري كه ميتونم بكنم اينه كه وقتي برنامم تموم شد يه نسخشو به شما بدم. فقط همين از دستم بر مياد.
بازم ممنون. بازم تشكر.
الهي هميشه شاد و سلامت و موفق باشيد

omn!a2
پنج شنبه 29 اردیبهشت 1390, 01:20 صبح
خواهش میکنم عزیز کاری نکردیم...

همین که برام دعا میکنید بزرگترین هدیه است.

شاد و پیروز و سربلند باشید.

oranoos_mt
پنج شنبه 29 اردیبهشت 1390, 11:16 صبح
ببخشيد. من يه مشكل ديگه واسم پيش اومده. مشكل كه چه عرض كنم يه راهنمايي براي بهتر شدن كار
من ميخوام وقتي روي روز 31 خرداد هستم وقتي كليك چپ زده شد روز اول ماه بعدي رو واسم نشون بده.
اين كار رو انجام دادم ولي فرم ماه قبلي باز ميمونه و بسته نميشه كه باعث پايين اومدن سرعت ميشه.
يه كد نوشتم ببينيد كجاي كد مشكل داره كه فرم قبلي بسته نميشه :

else if (pictureBox50.Location == new Point(100, 135))
{
frkhor frkhor1 = new frkhor();
frkhor1.Close();
frtir frtir1 = new frtir();
frtir1.Show();
}

بايد يه كاري كنم كه فرم قبلي بسته بشه كه سرعتش كم نشه.

omn!a2
پنج شنبه 29 اردیبهشت 1390, 13:23 عصر
سلام

ببین همیشه یادت باشه که اگر در خود فرم هستی این کد را باید بنویسی: ()this.Clos
البته در فرم اصلی نمیشه این کار رو بکنی چون کل برنامه بسته میشه! ولی در فرمهای بعدی میشه این کار رو بکنی
بازم سوالی بود در خدمتم.

oranoos_mt
پنج شنبه 29 اردیبهشت 1390, 19:48 عصر
سلام

ببین همیشه یادت باشه که اگر در خود فرم هستی این کد را باید بنویسی: ()this.Clos
البته در فرم اصلی نمیشه این کار رو بکنی چون کل برنامه بسته میشه! ولی در فرمهای بعدی میشه این کار رو بکنی
بازم سوالی بود در خدمتم.

راستش منم همين كارو ميكردم ولي چون كل برنامه بسته ميشد فك ميكردم كدم مشكل داره يا كد ديگه اي هست.
نميدونسم وقتي روي فرم اصلي باشم this.close رو بزنم كل برنامه بسته ميشه.
ممنون كه كمكم كردي.
به نظر مياد ديگه مشكلي نداشته باشم . اميدوارم كه پيش نياد كه ديگه مزاحمتون نشم
بازم ممنون