PDA

View Full Version : نحوه کپی کردن اطلاعات داخل گریدویو از طریق کلیک راست روی گریدویو



setareh2013
دوشنبه 07 مرداد 1392, 22:52 عصر
با سلام
من یک سری اطلاعات رو داخل گریدویو نشون میدم . باید چه کار کنم که وقتی روی اطلاعات گریدویو کلیک راست می کنم ، یک منو باز بشه و بتونم گزینه کپی رو از داخل اون انتخاب کنم و یا مقداری از متن رو انتخاب کرده و با یک رنگ دیگر هایلایت کنم ؟

setareh2013
سه شنبه 08 مرداد 1392, 12:16 عصر
کسی نمی تونه راهنماییم کنه ؟

setareh2013
پنج شنبه 10 مرداد 1392, 13:07 عصر
کسی نمی تونه راهنماییم کنه ؟

danialafshari
پنج شنبه 10 مرداد 1392, 13:17 عصر
به این شکل منظورتونه ؟

setareh2013
پنج شنبه 10 مرداد 1392, 22:08 عصر
بله فقط به جای گزینه چاپ یا ویرایش گزینه کپی باشه و کاربر بتونه متن مورد نظر رو با موس انتخاب کنه و کپی کنه

danialafshari
پنج شنبه 10 مرداد 1392, 22:21 عصر
بله فقط به جای گزینه چاپ یا ویرایش گزینه کپی باشه و کاربر بتونه متن مورد نظر رو با موس انتخاب کنه و کپی کنه

سلام
کدش راحته ولی دوست دارم خودتون با یکمی تلاش بدستش بیارید
تحلیلش هم با من
اول اینکه برای نمایش این منو ابتدا Contexmenu رو از Toolbox اضافه و خاصیت ContexMenu دیتاگرید رو روی همین Contexmenu ی که طراحی کردید ست می کنید بعد آیتم های مورد نیاز رو بهش اضافه می کنی بعد بیا در کپی رکورد جاری از گرید ویو رو(CurrentRow) بیا اون فیلد یا ستون رو (Cell) مقدارش رو(Value) بریز توی Clipboard
از MSDN هم می تونی برای آشنایی با کلاس ها و مشکلات استفاده کنی (به اصطلاحات انگلیسی دقت کن که بهشون برمی حوری). نمونش هم برای ریختن اطلاعات از گرید به textbox بسیار زیاد در سایت موجوده
موفق باشی

sohil_ww
پنج شنبه 10 مرداد 1392, 22:31 عصر
کپی رکورد جاری از گرید ویو رو(CurrentRow) بیا اون فیلد یا ستون رو (Cell) مقدارش رو(Value) بریز توی Clipboard

دوست عزیز بهتر نیست مقدار ها رو بریزه تو 1 متغیر و بعد از اون وارد تکس باکس ها کنه ؟! منظورم اینه که استفاده از clipboard بهتره یا متغیر و بعد از اتمام کار فضای اختصاص شده به متغیر از بین ببره

danialafshari
پنج شنبه 10 مرداد 1392, 22:43 عصر
دوست عزیز بهتر نیست مقدار ها رو بریزه تو 1 متغیر و بعد از اون وارد تکس باکس ها کنه ؟! منظورم اینه که استفاده از clipboard بهتره یا متغیر و بعد از اتمام کار فضای اختصاص شده به متغیر از بین ببره

سلام
خودش گفته که
کاربر بتونه متن مورد نظر رو با موس انتخاب کنه و کپی کنه و من فکر کردم ممکنه در خارج از نرم افزار هم بخواد ازش استفاده کنه

amir200h
پنج شنبه 10 مرداد 1392, 23:27 عصر
بفرما دوست من. برات نوشتمش.
هم داخل clipboard کپی میکنه. هم داخل متغییر.
موفق باشی

amir200h
جمعه 11 مرداد 1392, 00:03 صبح
این کاملتر شده

setareh2013
شنبه 12 مرداد 1392, 11:57 صبح
با تشکر از شما
اگه به این دو گزینه کپی گزینه هایلایت رو هم اضافه کنم چه کدی بنویسم که رنگ متن داخل سلول مورد نظر رو هایلایت مثلا سبز رنگ کنه ؟ کد زیر رو که می نوسیم کل متن داخل گریدویو رو رنگی می کنه
dataGridView1.ForeColor = Color.Green;

amir200h
شنبه 12 مرداد 1392, 12:10 عصر
با تشکر از شما
اگه به این دو گزینه کپی گزینه هایلایت رو هم اضافه کنم چه کدی بنویسم که رنگ متن داخل سلول مورد نظر رو هایلایت مثلا سبز رنگ کنه ؟ کد زیر رو که می نوسیم کل متن داخل گریدویو رو رنگی می کنه
dataGridView1.ForeColor = Color.Green;

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.CellStyle.BackColor = Color.Green;
}

setareh2013
یک شنبه 13 مرداد 1392, 11:59 صبح
من به صورت زیر نوشتم :
1- private void dataGridView1_EditingControlShowing_1(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.CellStyle.ForeColor = Color.Green;
}
2-
private void هایلایتToolStripMenuItem_Click(object sender, EventArgs e)
{
e.CellStyle.ForeColor = Color.Green;

}
با کد شماره 1 من باید دوبار کلیک کنم تا رنگ متن سبز بشه و وقتی از اون خونه خارج میشم رنگ متن به حالت اول برمی گرده . من می خوام موقع کلیک راست یک گزینه هایلایت هم باشه و متنی که انتخاب شده با انتخاب گزینه هایلایت رنگش عوض بشه و تا وقتی کاربر نخواسته رنگش تغییر نکنه . کد شماره 2 رو که نوشتم خطا می ده .

amir200h
یک شنبه 13 مرداد 1392, 12:17 عصر
زمانی که کاربر سلول را ویرایش و آن را ترک میکند تغییر رنگ اعمال میشه
private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Red;
}

amir200h
یک شنبه 13 مرداد 1392, 12:20 عصر
واسه اینکه کاربر های لات کنه بصورت زیر عمل کنین
به منو یه گزینه به نام "های لایت" یا هرچیز دیگه اضافه کنین و کد زیرو بزارین
private void هایلایتToolStripMenuItem_Click(object sender, EventArgs e)
{
dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[dataGridView1.CurrentCell.ColumnIndex].Style.BackColor = Color.Red;
}