PDA

View Full Version : مشکل کپی در richtextbox



mostafag
شنبه 26 اسفند 1396, 23:12 عصر
سلام خدمت شما

دوستان من توی برنامم یه قسمتش کاربر تعدادی کد ملی رو از توی فایل اکسل باید کپی کنه توی برنامه ولی وقتی paste رو توی richtextbox میزنه ساختار جدول توی اکسل هم کپی میشه و باعث میشه که توی کدها درست نشه خط به خط کد ملی ها رو حلاجی کرد!!

برا همین کاربر باید اول اون کپی رو ببره مثلا توی نوت پد paste کنه بعد از توی اون کپی کنه ببره توی برنامه که واقعا کاره بی معنی ای هست!! از تکست باکس معمولی هم نمیتونم استفاده کنم چون تعداد خطوط بعضی وقتا خیلی زیاده و اون جوابگو نیست.

ممنون میشم راه حل بدید

danialafshari
یک شنبه 27 اسفند 1396, 06:06 صبح
با سلام
برای رفع این مشکل توی رویداد KeyDown در Richtextbox کد زیر رو بنویسید

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V)
{
((RichTextBox)sender).Paste(DataFormats.GetFormat("Text"));
e.Handled = true;
}
}

موفق باشید

mostafag
یک شنبه 27 اسفند 1396, 11:13 صبح
تشکر از شما
کد شما برای Richtextbox خوده ویژوال درست عمل میکنه ولی برای ابزارای devcomponent این ارور رو میده:



Unable to cast object of type 'DevComponents.DotNetBar.Controls.RichTextBoxEx' to type 'System.Windows.Forms.RichTextBox'.


به نظرتون مشکل از کجاست؟

و نکته ی بعدی اینکه کلیک راست توی این کامپوننت اصلا وجود نداره. کدی چیزی هست که بشه کلیک راست رو مثه تکست های معمولی داخلش گذاشت؟؟

ممنون....

danialafshari
یک شنبه 27 اسفند 1396, 12:03 عصر
تشکر از شما
کد شما برای Richtextbox خوده ویژوال درست عمل میکنه ولی برای ابزارای devcomponent این ارور رو میده:



Unable to cast object of type 'DevComponents.DotNetBar.Controls.RichTextBoxEx' to type 'System.Windows.Forms.RichTextBox'.


به نظرتون مشکل از کجاست؟

و نکته ی بعدی اینکه کلیک راست توی این کامپوننت اصلا وجود نداره. کدی چیزی هست که بشه کلیک راست رو مثه تکست های معمولی داخلش گذاشت؟؟

ممنون....
با سلام
به جای RichTextBox کامپوننتون رو بنویسید DevComponents.DotNetBar.Controls.RichTextBoxEx

if (e.Control && e.KeyCode == Keys.V)
{
((DevComponents.DotNetBar.Controls.RichTextBoxEx)s ender).Paste(DataFormats.GetFormat("Text"));
e.Handled = true;
}
برای کار با کلیک راست هم میتونید از ContextMenu استفاده کنید در واقع خودتون بسازید
البته DevComponent رو اطلاعی ندارم خصوصیاتش رو بررسی کنید شاید وجود داشته باشه
موفق باشید