PDA

View Full Version : سوال: فراخوانی event ها به صورت دستی



beni.com
سه شنبه 26 اردیبهشت 1391, 10:46 صبح
سلام دوستان
من یه دکمه به صورت دستی و توسط کد زیر به برنامم اضافه کردم حالا اگه بخوام وقتی روی این دکمه کلیک شد مثلا یه messagebox بهم نشون بده.

Button button1 = new Button();
button1.Location = new Point(20,10);
button1.Text = "Click Me";
groupBox1.Controls.Add(button1);

با تشکر

Mahmoud.Afrad
سه شنبه 26 اردیبهشت 1391, 11:05 صبح
در ادامه همین کدها بنویسید
button2.Click += بعد بهتون میگه کلید تب رو بزنید که با زیدنش میتونید نام رویداد رو اگر خواستید تغییر بدید و دوباره تب بزنید تا رویداد ساخته بشه و کدهاتون رو درش بنویسید.

beni.com
سه شنبه 26 اردیبهشت 1391, 11:29 صبح
آقا خیلی کارت درسته
کاش میدونستی چقدر کارمو راه انداختی.
ممنونم از لطفت.

beni.com
سه شنبه 26 اردیبهشت 1391, 12:06 عصر
ببخشید یه مشکل دیگه برام پیش اومده
کد من قراره یه تسک بار درست کنه به ازای تمام فرمهای باز. اونوقت وقتی روی دکمه هایی که داینامبک ایحاد شده کلیک شد فرم مورد نظر فوکوس شه ولی نمی دونم چه جوری اسم دکمه ها رو با این Event که خودش ساخته باهاش ارسال کنم که بشه روش فوکوس کرد.
اینم کدش لازم ممنون

DevComponents.DotNetBar.

BubbleBar BBar = new DevComponents.DotNetBar.BubbleBar();

BBar.Dock =

DockStyle.Bottom;

DevComponents.DotNetBar.

BubbleBarTab Btab = new DevComponents.DotNetBar.BubbleBarTab();

Btab.Text =

"لیست فرمهای باز";

Btab.PredefinedColor = DevComponents.DotNetBar.

eTabItemColor.Blue;

BBar.Tabs.Add(Btab);



foreach (Form frm in Application.OpenForms)

{

DevComponents.DotNetBar.

BubbleButton Bitem = new DevComponents.DotNetBar.BubbleButton();

Bitem.TooltipText = frm.Text;

Bitem.Name =

"btn_" + frm.Name;

Bitem.TagString = frm.Text;

Bitem.Image = frm.Icon.ToBitmap();

Btab.Buttons.Add(Bitem);

Bitem.Click +=

new DevComponents.DotNetBar.ClickEventHandler(Bitem_Cl ick,Bitem);



}

BBar.Size =

new Size(200, 200);

grp_bubble.Controls.Add(BBar);

beni.com
سه شنبه 26 اردیبهشت 1391, 12:34 عصر
بهتره سوالمو یه جور دیکه مطرح کنم توی یه حلقه foreach به ازای تمام فرمهای بازم یه دکمه ساخته میشه. حالا اگه بخوام روی دکمه های ایجاد شده اگه کلیک شد( که با راهنمایی آقای mafaman2003 این مشکل حل شد) اسم دکمه توی یه مسیج باکس نشون داده بشه چه کار باید کرد.
کدمم که کد بالاست
ممنون

beni.com
سه شنبه 26 اردیبهشت 1391, 12:48 عصر
مشکل اینه که چون توی حلقه داره می چرخه اسم دکمه هر دفعه داره عوض میشه به خاطر همین نمی تونم تو متغیر بریزمش. فکر کنم به محض اینکه کلیک شد باید اسمو از یه جایی در بیاره که نمی دونم کجاس.
بازم ممنون

فرید نجفلو
سه شنبه 26 اردیبهشت 1391, 14:10 عصر
سلام
دوست عزیز این کد رو تست کنید

private void Form1_Load(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
Button TaskBarBtn = new Button();
TaskBarBtn.Text = frm.Text;
TaskBarBtn.Tag=frm ;
TaskBarBtn.Click+=button1_Click;
this.flowLayoutPanel1.Controls.Add(TaskBarBtn);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (((Button)sender).Tag is Form)
{
Form frm = (Form)((Button)sender).Tag;
frm.Select();
frm.Activate();
}
}

beni.com
سه شنبه 26 اردیبهشت 1391, 15:55 عصر
آقا من فدای مرام شما بشم. مشکلم حل شد.
دست شما درد نکنه.