کنترل Command

این شی برخلاف کنترل هایی که تا الان آنها رو معرفی کردیم ، یک کنترل غیر بصری است که به سینی اجزا اضافه می شود.کنترل Command همانند یک جعبه می باشد که توانایی نگهداری مجموعه ای از دستورات را درون خود دارد و با صدا زدن کنترل Command ، این جعبه باز شده و دستورات درون آن اجرا می شوند.

command
این کنترل سبب می شود که از تعریف بسیاری از دستورات تکراری عمومی پرهیز شود و فقط با صدا زدن این کنترل دستورات درون آن اجراشود.

متد ها

برای اینکه بتونید با این کنترل کار کنید مجبورم تعدادی از متد ها و رویداد های آن را براتون شرح بدم.

متد Execute : به وسیله ی این متد کنترل Command صدا زده شده و اجرا می شود.

رویداد ها

Executed : میشه گفت این رویداد مهمترین رویداد کنترل Command می باشد و زمانی که متد Execute اجرا میشود رخ می دهد و مجموعه دستورات درونش اجرا می شوند.

Preview Executed : این رویداد قبل از رویداد Executed رخ می دهد و دستورات درونش را اجرا می کند.

خاصیت ها

دو خاصیت خیلی مهم در شی command : Command و CommandParameter می باشند. با اضافه کردن کنترل Command به فرم دو خصوصیت Command و CommandParameter به کنترل های Dev موجود در فرم اضافه می شود.

Command : به وسیله ی این خصوصیت میتوانید کنترل Command را به کنترل های Dev نسبت دهید.
command-2
در کد نویسی به طریقه ی زیر می توانید عمل کنید.

Buttonx1.Command = Command1

Command Parameter : به وسیله ی این خصوصیت می توانید یک پارامتر را به کنترل command فرستاده و در هنگام اجرای دستورات از آن استفاده کنید. در مثال زیر می خواهیم

با استفاده از شی Command دستورات Maximize و Minimize مربوط به فرم را پیاده سازی کنیم.  ابتدا دو ButtonX را بر روی فرم قرار دهید و خصوصیت Text آنها رو به Maximize و Minimize تغییر دهید.
command-1

و سپس مطابق شکل بالا دو شی Command را به فرم اضافه کنید .  بر روی Command1 دابل کلیک کرده و طبق شکل زیر درون رویداد Executed کد را وارد نمایید.

private void command1_Executed(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Minimized;
}

سپس  بر روی Command2 دابل کلیک کرده و طبق شکل کد را در رویداد Executed وارد نمایید.

private void command2_Executed(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Maximized;
}

در مرحله بعد بر روی دکمه ی Maximize دابل کلیک کرده و کد زیر رو در رویداد کلیک بنویسید .

private void buttonX2_Click(object sender, EventArgs e)
{
    command2.Execute();
}

با این دستور قطعه کد درون Command2 اجرا می شود. سپس بر روی دکمه ی Minimize دابل کلیک کرده و کد زیر رو در رویداد کلیک آن بنویسید.

private void buttonX1_Click(object sender, EventArgs e)
{
    command1.Execute();
}

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