نمایش نتایج 1 تا 20 از 20

نام تاپیک: ساخت user control برای login به فرم اصلی برنامه

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #2
    نقل قول نوشته شده توسط az_farzaneh مشاهده تاپیک
    سلام . من میخوام user control ی برای login به فرم اصلی برنامم بسازم ,می خوام روش بهینه ی برای پیاده سازی eventهای مربوطه داشته باشم .منو راهنمایی کنید.
    این حالت ساده شده ی کنترلی است که من در برنامه هام مینویسم :
    public partial class LoginControl : UserControl
    {
    public LoginControl()
    {
    InitializeComponent();
    }

    private void btnLogin_Click(object sender, EventArgs e)
    {
    bool result = false;
    Control parent = this.Parent;
    if (!(parent is IAuthentication))
    return;
    result = (parent as IAuthentication).IsAuthentic(tbUserId.Text, tbPassword.Text);
    if (result)
    OnLoginSuccess();
    else
    OnLoginFail();
    }

    private void btnCancel_Click(object sender, EventArgs e)
    {
    OnLoginCancel();
    }

    public delegate void ClickButtonHandler(object sender, EventArgs e);
    public event ClickButtonHandler LoginSuccessed;
    public event ClickButtonHandler LoginFailed;
    public event ClickButtonHandler LoginCanceled;

    public void OnLoginSuccess()
    {
    if (LoginSuccessed != null)
    LoginSuccessed(this, new EventArgs());
    }

    public void OnLoginFail()
    {
    if (LoginFailed != null)
    LoginFailed(this, new EventArgs());
    }

    public void OnLoginCancel()
    {
    if (LoginCanceled != null)
    LoginCanceled(this, new EventArgs());
    }
    }
    این کنترل 3 تا ایونت داره : (البته صرف آموزش و در عمل نیازی به پیاده سازی این 3 رخداد نیست و میشه با یک ایونت مشکل رو حل کرد)

    LoginSuccessed: زمانی که شخص موفق به لاگین میشه
    LoginFailed: زمانی که شخص سعی میکنه و موفق نمیشه
    LoginCanceled: زمانی که شخص از لاگین انصراف میده

    روش قدم به قدم پیاده سازی یک ایونت بصورت هایلایت شده قابل ردگیری است (که این فرآیند تکراریه و همیشه یه همین شکل انجام میشه)

    از طرفی هر فرمی که از این کنترل استفاده میکنه باید اینترفیس زیر رو پیاده سازی کنه :
        public interface IAuthentication
    {
    bool IsAuthentic(string UserId, string Password);
    }
    برای مثال استفاده در یک فرم :
    public partial class LoginForm : Form, IAuthentication
    {
    public LoginForm()
    {
    InitializeComponent();
    }

    private int nTry = 0;
    private void loginControl1_LoginFailed(object sender, EventArgs e)
    {
    if (nTry++ > 2)
    {
    MessageBox.Show("ByeBye!");
    this.DialogResult = DialogResult.Abort;
    }
    else
    MessageBox.Show(string.Format("You have {0} times to try again...", (3 - nTry + 1).ToString()));
    }

    private void loginControl1_LoginCanceled(object sender, EventArgs e)
    {
    this.DialogResult = DialogResult.Ignore;
    }

    private void loginControl1_LoginSuccessed(object sender, EventArgs e)
    {
    this.DialogResult = DialogResult.OK;
    }

    public bool IsAuthentic(string UserId, string Password) { if (UserId == "user" && Password == "pass") return true; return false; }
    }
    و این هم کدی که نهایتا در شروع کار مینویسم :
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(fals e);
    LoginForm login = new LoginForm();
    if (login.ShowDialog() == DialogResult.OK)
    Application.Run(new MainForm());
    }
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 14:11 عصر
    ...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست

تاپیک های مشابه

  1. مقاله جامع: User Control ها و Custom Control ها در ASP.NET
    نوشته شده توسط Behrouz_Rad در بخش مقالات مرتبط با Microsoft .Net Framework
    پاسخ: 12
    آخرین پست: سه شنبه 24 اردیبهشت 1392, 10:35 صبح
  2. login control
    نوشته شده توسط matrix_h85 در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: شنبه 17 شهریور 1386, 14:49 عصر
  3. فرق بین login و user
    نوشته شده توسط arash_m در بخش SQL Server
    پاسخ: 2
    آخرین پست: سه شنبه 23 خرداد 1385, 13:27 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •