سلام بچه ها.
من داخل فرمم یه گرید ویو دارم که می خوام مثلا فیلد توضیحات را وقتی موس روی ردیفی رفت توضیحات نمایش بده و بتوان متنی که داخل اون هست رو کپی کنه.
باید چه کار کنم؟
با تشکر
Printable View
سلام بچه ها.
من داخل فرمم یه گرید ویو دارم که می خوام مثلا فیلد توضیحات را وقتی موس روی ردیفی رفت توضیحات نمایش بده و بتوان متنی که داخل اون هست رو کپی کنه.
باید چه کار کنم؟
با تشکر
if ( dataGridView1.CurrentCell.OwningColumn.HeaderText= ="Column1")
{
dataGridView1.CurrentCell.ToolTipText = "name";
}
و...
foreach (DataGridViewCell item in dataGridView1 .Rows[0].Cells )
{
item.ToolTipText = "hi";
}
یا
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1[0, i].ToolTipText = "hi";
}
منظورتون رو از کپی کردن متن نفهمیدم... لطفا دقیقتر توضیح بدید.
کد اول را می توان در رویدادهایی مانند Mouseoverو... نوشت.
کدهای دوم وسوم را می توانید در form_load بنویسید.
به چه دلیل می خواهید متن tooltip را کپی کنید؟
برای استفاده از مقادیر سلولها از روش زیر استفاده کنید:
if (dataGridView1 .CurrentCell .Value!=null )
MessageBox.Show(dataGridView1.CurrentCell.Value.To String());
else
MessageBox.Show("Empty");
ببینید من دارم یه برنامه واسه کانون تبلیغاتی می نویسم و داخل برنامه یه فرم هست که اطلاعات آگهی و می گیره همراه با متن آگهی.
وقتی ذخیره شد داخل یه دیتاگرید نشون میده و گفته وقتی اومد روی ردیف مربوطه متن آگهی را یه جوری نشون بده و بشه کپی کرد که نخواد بره داخل فرمی دیگه.
خوب شما می گویید که متن آگهی از کاربر گرفته می شود و در یک فیلد ذخیره می شود، در این صورت نیازی به این کارها نیست...
اگر فیلد توضیحات را در گرید نمایش بدید همه ی این مشکلات رفع می شه، اما اگر متن آگهی را نمی خواهید در گرید نمایش دهید و فقط می خواهید در بانکتان باشد، باید از یک dataset کمک بگیرید تا اطلاعات آن را بخواند و به صورت tooltip نمایش دهید.
البته من چنین کاری را توصیه نمی کنم....بهتر است که یک فیلد برای متن آگهی در گرید نمایش داده شود زیرا به صورت معمول چنین کاری انجام نمی شه،چون tooltip فقط یک توضیح کوتاه هست نه یکی از مقادیر مهم.
می توانید به جای tooltip از یک لیبل یا تکست باکس استفاده کنید، که با کلیک کردن کاربر بر روی هر ردیف، متن آگهی در یک لیبل یا تکست باکس نمایش داده بشود(همان طور که گفتم در این صورت به یک dataset برای دسترسی به مقادیر جدول نیاز خواهید داشت)
Object o = dataSet.Tables[“TableNameOrIndex”].Rows[0]["ColumnNameOrIndex"];