PDA

View Full Version : سوال: بسته شدن tabPage با کلیک اسکرول ماوس



NIK
دوشنبه 31 خرداد 1389, 10:38 صبح
سلام
میخواستم بدونم رویدادی برای کلیک اسکرول ماوس وجود داره؟

اگه وجود نداره به نظر شما بهترین راه (برای اپراتور) برای بستن یک tabPage چیه؟

Ehsan.Saradar
دوشنبه 31 خرداد 1389, 12:40 عصر
اگر منظور شما از کلیک اسکرول کلیک وسط موس باشه , پیشنهاد من :


private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Middle)
{
MessageBox.Show("middle");
}
}برای بستن یک Tabpage :


tabControl1.TabPages.Remove(tabControl1.TabPages[0]);

NIK
دوشنبه 31 خرداد 1389, 13:10 عصر
متشکرم
اما یه مشکل دیگه هم هست.
من مشغول نوشتن یه برنامه تبیولار هستم که در اون مرتب tabPage اضافه میکنم و توش فرم لود میکنم. حالا میخوام کاربر بتونه مثل VS با کلیک وسط تبها رو ببنده.
شما میدونید برای تبهایی که در حین کار با برنامه ایجاد شدند چطور میشه رویداد MouseClick تعریف کرد؟

Ehsan.Saradar
دوشنبه 31 خرداد 1389, 21:05 عصر
قسمت افزودن :

private void button1_Click(object sender, EventArgs e)
{
TabPage tp = new TabPage("New Tabpage!!!");
tp.MouseClick += new MouseEventHandler(tp_MouseClick);
tabControl1.TabPages.Add(tp);
}قسمت حذف کردن :


void tp_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Middle)
{
TabPage tp = sender as TabPage;
tabControl1.TabPages.Remove(tp);
}
}

cardano7
دوشنبه 31 خرداد 1389, 23:35 عصر
چه تضمینی هست که کلیک حتما روی سربرگ صورت گرفته و نه در وسط tabPage ؟

NIK
سه شنبه 01 تیر 1389, 00:07 صبح
چه تضمینی هست که کلیک حتما روی سربرگ صورت گرفته و نه در وسط tabPage ؟
سوال بسیار بجایی بود.
من در حال نوشتن یک برنامه تبیولار هستم. به ازای هر درخواست کاربر، یک تب جدید در برنامه باز میشه و فرم مورد نظر کاربر در اون تب نشون داده میشه. چون در تبها فرم باز میکنم، رویداد Mouse_Click هر تب پیچ، فقط برای قسمت بالای تب جواب میده. چون در تب فرم باز شده و رویداد ماوس کلیک تب رو فرم جواب نمیده.

اما سوال من اینه که من در حین اجرای برنامه چند تب پیج به تب کنترلم Add میکنم. چطور میتونم واسه اون تب پیج هایی که در حین اجرای برنامه اضافه میکنم رویداد Mouse_click تعریف کنم؟

cardano7
سه شنبه 01 تیر 1389, 17:46 عصر
اما سوال من اینه که من در حین اجرای برنامه چند تب پیج به تب کنترلم Add میکنم. چطور میتونم واسه اون تب پیج هایی که در حین اجرای برنامه اضافه میکنم رویداد Mouse_click تعریف کنم؟

خوب به طور دینامیک:

newTabPage.MouseClick += new MouseEventHandler(myEvent_MouseClick);