PDA

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



sajad_3dmax
پنج شنبه 31 شهریور 1390, 22:33 عصر
با عرض سلام.
من میخوام وقتی که کاربر فرمی رو بست،ابتدا طول و عرض فرم بسمت مرکز کاهش پیدا کنه(اندازه فرم کوچک بشه)و سپس فرم بسته بشه.چطور میتونم اینکار رو انجام بدم؟

ya30ien2
پنج شنبه 31 شهریور 1390, 23:15 عصر
فکر میکنم با یک تایمر ساده این کار رو بکنی

مرتضی تقدمی
پنج شنبه 31 شهریور 1390, 23:55 عصر
سلام
با کار روی طول و عرض فرم و گذاشتن توی یک تایمر قابل انجامه. می تونید خاصیت opacity فرم رو هم توی تایمر دستکاری کنید.
موفق باشید

nunegandom
جمعه 01 مهر 1390, 00:18 صبح
و همه ااینا روو تویه رویداد Closing باید دستکاری کنی

fan2005
جمعه 01 مهر 1390, 00:35 صبح
int m_iFadeCount = 0;
private void timer1_Tick(object sender, EventArgs e)
{
// private member that tracks the number of times this timer has fired

m_iFadeCount++;
// set the opacity of the form. WinForms have a nice property

// called Opacity that does this for you.

// Opacity is 1.00 by default. To make the form more "see

// through", set to a value between 0 and 1.00 so

// 0.5 would be a form that is 50% opacity.

double iOpacity = Convert.ToDouble(1 - (m_iFadeCount * 0.1));

// Make sure that the opacity is in the range that the form
// accepts.

if (iOpacity <= 1 && iOpacity >= 0)
{

// set this form's opacity.

this.Opacity = iOpacity;
// You have to call refresh so that the form will redraw
// itself.
this.Refresh();
}

// if the form is totally opaque meaning it's invisible
// (Opacity = 0), then stop this timer and close the form.

if (m_iFadeCount > 10)
{
timerFade.Stop();
this.Close();
}


}


private void Close_Click(object sender, EventArgs e)
{
timerFade.Enabled = true;
}

nunegandom
جمعه 01 مهر 1390, 10:32 صبح
یه سوال
این Close_Click رو از کجا باید بهش کد بدیم؟ :متفکر:

nilmil_nil
جمعه 01 مهر 1390, 14:08 عصر
یه سوال
این Close_Click رو از کجا باید بهش کد بدیم؟ :متفکر:
توی Event ها در قسمت Properties میتونی دنبال Event به نام Close بگردی و اونو ایجاد کنی

fan2005
جمعه 01 مهر 1390, 19:49 عصر
این یه button بود که event click آن پیاده سازی شده

sajad_3dmax
جمعه 01 مهر 1390, 23:16 عصر
دوستان عزیز
من میخواستم موقع تغییر اندازه عرض فرم بطور همزمان از سمت راست و چپ کاهش پیدا کنه و ارتفاع هم از بالا و پایین

programerinfonet
شنبه 02 مهر 1390, 00:55 صبح
سلام دوست عزیز
ببین این کارت رو راه می اندازه باز اگه مشکلی بود بگو من در خدمتت هستم
http://s2.picofile.com/file/7145053973/New_WinRAR_ZIP_archive_2_.zip.html

fan2005
شنبه 02 مهر 1390, 09:56 صبح
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace Utility
{
/// <summary>
/// Base form class that provides fading/sliding effects on open/close of the form.
/// </summary>
public abstract class FadeForm : Form
{
#region Win32

const int AW_HIDE = 0X10000;
const int AW_ACTIVATE = 0X20000;
const int AW_HOR_POSITIVE = 0X1;
const int AW_HOR_NEGATIVE = 0X2;
const int AW_SLIDE = 0X40000;
const int AW_BLEND = 0X80000;

[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int AnimateWindow
(IntPtr hwand, int dwTime, int dwFlags);

#endregion

#region Variables

private bool _UseSlideAnimation;

#endregion

#region Constructor

/// <summary>
/// Initializes a new instance of the <see cref="FadeForm"/> class.
/// </summary>
public FadeForm() : this(false) { }

/// <summary>
/// Initializes a new instance of the <see cref="FadeForm"/> class.
/// </summary>
/// <param name="useSlideAnimation">if set to <c>true</c> [use slide animation].</param>
public FadeForm(bool useSlideAnimation)
{
_UseSlideAnimation = useSlideAnimation;
}

#endregion

#region Overrides

/// <summary>
/// Raises the <see cref="E:System.Windows.Forms.Form.Load"/> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data.</param>
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
AnimateWindow(this.Handle, 1000, AW_ACTIVATE | (_UseSlideAnimation ? AW_HOR_POSITIVE | AW_SLIDE : AW_BLEND));
}

/// <summary>
/// Raises the <see cref="E:System.Windows.Forms.Form.Closing"/> event.
/// </summary>
/// <param name="e">A <see cref="T:System.ComponentModel.CancelEventArgs"/> that contains the event data.</param>
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
base.OnClosing(e);
if (e.Cancel == false)
{
AnimateWindow(this.Handle, 1000, AW_HIDE | (_UseSlideAnimation ? AW_HOR_NEGATIVE | AW_SLIDE : AW_BLEND));
}
}

#endregion

}
}

mohammad diba
شنبه 02 مهر 1390, 10:37 صبح
سلام بر همه دوستان
این سوال برای منم چند مدتیه سواله
تازه من دیدهام که فرم وقتی بسته می شه یک افکت جالب مثل اینکه فرم از بغلاش آتیش گرفته و آروم آروم محو میشه یا اینکه یک دایره باز شده و قطرش یواش یواش کم میشه و داره فرم رو محو می کنه اینا رو چه جوری انجام بدیم؟

mahboube
شنبه 02 مهر 1390, 11:22 صبح
یه سرچ تو همین بخش بکنی نمونه های زیباتری هم گیرت میاد.جستجوووووو....

fan2005
شنبه 02 مهر 1390, 11:30 صبح
برای اینکه فرم کوچک شود در رویداد تبک تایمر بنویس


this.Size = new System.Drawing.Size(this.Width - m_iFadeCount * (this.Width / 10),
this.Height - m_iFadeCount * (this.Height / 10));

مرتضی تقدمی
شنبه 02 مهر 1390, 11:34 صبح
توی یکی از این تاپیک ها من یک نمونه برنامه دیده بودم که فرم رو به حالات مختلف باز و بسته می کرد :

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

http://barnamenevis.org/showthread.php?95001-1001-%D9%86%DA%A9%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

http://barnamenevis.org/showthread.php?69916-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7-%D9%88-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA%D 9%87%D8%A7%DB%8C-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA

موفق باشید