PDA

View Full Version : سوال: کد تشخیص اینکه متن انتخاب شده برای کپی در کدام تب است؟و اسم richtextboxاش چیه؟؟



baran1367
شنبه 14 مرداد 1391, 01:58 صبح
سلام حسته نباشید.2 تا سوال دارم فوریه .خواهش میکنم هرکسی اطلاعاتی داره کامل بگه...ممنونم
من دارم notepad++ مینویسم باکد زیر تب جدبد ایجاد کردم


TabPage tabpage = new TabPage();
tabControl1.Controls.Add(tabpage);
tabnumber += 1;
tabpage.Text = "New " + tabnumber;
RichTextBox richtextbox = new RichTextBox();
richtextbox.Dock = DockStyle.Fill;
tabpage.Controls.Add(richtextbox);
richtextbox.ContextMenuStrip = contextMenuStrip1;
tabControl1.SelectedIndex = tabControl1.TabCount - 1;

حالا میخوام وقتی روی یک تب کلیک میکنم بتونم متن داخلش را کپی کنم.برای کپی کردنش مینویسم richtextbox1.copy(). خب مسلما متن داخل تب اول یعنی richtextbox1 راکپی میکنه.چه کدی باید بنویسم که اسم richtextboox جدید رو که باکدبالا میسازم رو بدست بیاره و تشخیص بده که این متن در کدوم تب است و انرا کپی کنه.در واقع میحوام ی کد بنویسم که تشخیص بده richtextbox که داخلش متن نوشتم اسمش چیه یا ایندکسش چیه که بتونم دستور کپی رو بنویسم.

سوال دوم:
میخوام وقتی کلیدی روی richtextbox زده میشه عملی انجام بده برای richtextbox1 که دستورش رو در رویداد keydownگذاشتم ودرسته ولی برای richtextbox های بعدی که با کدبالا میسازم جطوری کد داینامیک بنویسم که وقتی richtextbox جدید ساخته شد رویداد keydown داشته باشه وبتونه کد موردنظر روانحام بده؟؟
ممنون

Mahmoud.Afrad
شنبه 14 مرداد 1391, 03:48 صبح
برای دسترسی به متن
(tabControl1.TabPages[tabControl1.SelectedIndex].Controls.OfType<RichTextBox>().First()).Text
برای تب سلکت شده جواب میده که میتونید tabControl1.SelectedIndex را به اندیس دلخواه هم تغییر بدید.

برای رویداد هم کد بنویسید دیگه، بعد از نام کنترل و رویداد ، یک += بزارید با یک space خود ویژوال استادیو راهنمایی میکنه که کلید تب رو فشار بدید بعد از دوبار فشار دادن تب رویداد ساخته میشه و میتونید کدتونو بنویسید
RichTextBox richtextbox = new RichTextBox();
richtextbox.Dock = DockStyle.Fill;

richtextbox.KeyDown += new KeyEventHandler(richtextbox_KeyDown);

tabpage.Controls.Add(richtextbox);