PDA

View Full Version : سوال: چگونه تمام مطالب مورد نظرمان را در یک فرم نمایش دهیم؟



jd.mn98
یک شنبه 10 فروردین 1393, 08:56 صبح
سلام دوستان
من میخواستم بدونم چگونه تمام مطالب مورد نظرمان را در یک فرم نمایش دهیم؟
مثلا ما یک برنامه داریم که درباره آزمون می باشد. ما در فرممان یک دکمه داریم که مارا به صفحه آزمون می برد. حالا چطوری میشه که به جای اینکه یک فرم جدید باز بشه، آزمون در همین فرم فعلی به نمایش در باید؟

jeson_park
یک شنبه 10 فروردین 1393, 09:14 صبح
از Panel استفاده کنید و متد hide و show رو براش فراخوانی کنید

jd.mn98
یک شنبه 10 فروردین 1393, 12:05 عصر
خب اینطوری خیلی پیچیده نمیشه؟
چطوری میشه بهش انیمیشن داد؟ مثلا وقتی روی دکمه کلیک کردیم پنل از چپ به راست وارد فرم بشه؟

Morteza-76
یک شنبه 10 فروردین 1393, 12:16 عصر
شما یک پنل در فرم حاضرتون درست میکنید این پنل همون فرم آزمونت به حساب میاد این پنل در حالت اولیه visible = false قرار داره و وقتی هم که کاربر باتون رو فشار میده این پنل visible = true میشه.

jeson_park
یک شنبه 10 فروردین 1393, 12:24 عصر
از WPF هم می تونی استفاده کنی :لبخندساده:

jd.mn98
یک شنبه 10 فروردین 1393, 12:24 عصر
درست اینو میدونم.
چطوری میشه حالت انیمیشن داد طوری که پنل از سمت چپ فرم وارد شود و سپس کل فرم را بگیرد و در پایین هم یک دکمه ی برگشت به وجود بیاد؟

kurdboy2175
یک شنبه 10 فروردین 1393, 13:02 عصر
سلام دوست عزیز
شما اگه زحمت بکشید یه سرچ کوچیگ بکنید فیلم آموزشی هم پیدا میکنی در مورد انیمیشن کردن فرم هات موفق باشی

Morteza-76
یک شنبه 10 فروردین 1393, 13:11 عصر
بفرمایید شاید این کارتون رو را بندازه ولی اگه میخواهید که کمی واقعی تر و با افکت این کار انجام بشه فکرکنم wpf بهتر باشه
http://www.uplooder.net/cgi-bin/dl.cgi?key=b12f158441367744ea54369311811b31
موفق باشید

khokhan
یک شنبه 10 فروردین 1393, 13:35 عصر
درست اینو میدونم.
چطوری میشه حالت انیمیشن داد طوری که پنل از سمت چپ فرم وارد شود و سپس کل فرم را بگیرد و در پایین هم یک دکمه ی برگشت به وجود بیاد؟
باسلام
یه کلاس خالی به پروژه خودتون اضافه کنین و همه کدهای داخلش رو پاک کنین و این کدها رو بهش اضافه کنین :

using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public static class Util
{
public enum Effect { Roll, Slide, Center, Blend }

public static void Animate(Control ctl, Effect effect, int msec, int angle)
{
int flags = effmap[(int)effect];
if (ctl.Visible) { flags |= 0x10000; angle += 180; }
else
{
if (ctl.TopLevelControl == ctl) flags |= 0x20000;
else if (effect == Effect.Blend) throw new ArgumentException();
}
flags |= dirmap[(angle % 360) / 45];
bool ok = AnimateWindow(ctl.Handle, msec, flags);
if (!ok) throw new Exception("Animation failed");
ctl.Visible = !ctl.Visible;
}

private static int[] dirmap = { 1, 5, 4, 6, 2, 10, 8, 9 };
private static int[] effmap = { 0, 0x40000, 0x10, 0x80000 };

[DllImport("user32.dll")]
private static extern bool AnimateWindow(IntPtr handle, int msec, int flags);
}



خوب حالا کلاس شما آماده شده برین سروقت فرم مورد نظر و یه باتن و یه panel به اون اضافه کنین محل قرار گرفتنش رو خودتون تعیین کنین

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


Util.Animate(panel1, Util.Effect.Slide, 150, 180);

هر بار که دکمه رو فشار بدین احساس خاصی براتون دست می ده:لبخند:

حالا یه بار هم کدهای رویداد باتن رو اینطوری بنویسین:


Util.Animate(panel1, Util.Effect.Center, 150, 180);

jd.mn98
یک شنبه 10 فروردین 1393, 20:33 عصر
بابا دکمه تشکر کافی نیست نمیدونم چی بگم ...:متعجب::متعجب::متعجب::متعجب :

jd.mn98
دوشنبه 11 فروردین 1393, 07:45 صبح
دوست عزیز من یک سوال دارم
از این کد من چیز دقیقی نفهمیدم ولی نتیجه ش خیلی برام عالی بود.
می خوام بدونم چطوری میشه از چپ به راست بیاد؟؟ چون من امتحان کردم از راست به چپ میومد!

khokhan
دوشنبه 11 فروردین 1393, 10:58 صبح
دوست عزیز من یک سوال دارم
از این کد من چیز دقیقی نفهمیدم ولی نتیجه ش خیلی برام عالی بود.
می خوام بدونم چطوری میشه از چپ به راست بیاد؟؟ چون من امتحان کردم از راست به چپ میومد!
با سلام
درون کلاس در خط 18 عدد 45 رو به 25تغییر بده با این عمل پانل از گوشه پایین سمت چپ باز می شه و به سمت راست بسته می شه :

flags |= dirmap[(angle % 360) / 25];