PDA

View Full Version : سوال: نمایش Tool tips برای فیلدهای گرید ویو



R_khaleghi
یک شنبه 17 شهریور 1392, 22:56 عصر
سلام بچه ها.

من داخل فرمم یه گرید ویو دارم که می خوام مثلا فیلد توضیحات را وقتی موس روی ردیفی رفت توضیحات نمایش بده و بتوان متنی که داخل اون هست رو کپی کنه.
باید چه کار کنم؟

با تشکر

farhad.k.t
یک شنبه 17 شهریور 1392, 23:58 عصر
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";
}
منظورتون رو از کپی کردن متن نفهمیدم... لطفا دقیقتر توضیح بدید.

R_khaleghi
دوشنبه 18 شهریور 1392, 00:59 صبح
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";
}
منظورتون رو از کپی کردن متن نفهمیدم... لطفا دقیقتر توضیح بدید.

منظورم اینه مثلا داخل Tooltips داره متنی به ما نشون میده کاربر می خواد این متن را از همینجا کپی کنه و نخواهد بره به فرم دیگه.
اگر بجز tool tip راه دیگه هم وجود داره لطفا بگین.


کدهایی هم که گفته بودین داخل Mouseover Event باید بنویسم؟


با تشکر

farhad.k.t
دوشنبه 18 شهریور 1392, 11:27 صبح
کد اول را می توان در رویدادهایی مانند Mouseoverو... نوشت.
کدهای دوم وسوم را می توانید در form_load بنویسید.

به چه دلیل می خواهید متن tooltip را کپی کنید؟

برای استفاده از مقادیر سلولها از روش زیر استفاده کنید:
if (dataGridView1 .CurrentCell .Value!=null )
MessageBox.Show(dataGridView1.CurrentCell.Value.To String());
else
MessageBox.Show("Empty");

R_khaleghi
دوشنبه 18 شهریور 1392, 12:10 عصر
به چه دلیل می خواهید متن tooltip را کپی کنید؟


ببینید من دارم یه برنامه واسه کانون تبلیغاتی می نویسم و داخل برنامه یه فرم هست که اطلاعات آگهی و می گیره همراه با متن آگهی.
وقتی ذخیره شد داخل یه دیتاگرید نشون میده و گفته وقتی اومد روی ردیف مربوطه متن آگهی را یه جوری نشون بده و بشه کپی کرد که نخواد بره داخل فرمی دیگه.

farhad.k.t
دوشنبه 18 شهریور 1392, 13:48 عصر
خوب شما می گویید که متن آگهی از کاربر گرفته می شود و در یک فیلد ذخیره می شود، در این صورت نیازی به این کارها نیست...
اگر فیلد توضیحات را در گرید نمایش بدید همه ی این مشکلات رفع می شه، اما اگر متن آگهی را نمی خواهید در گرید نمایش دهید و فقط می خواهید در بانکتان باشد، باید از یک dataset کمک بگیرید تا اطلاعات آن را بخواند و به صورت tooltip نمایش دهید.
البته من چنین کاری را توصیه نمی کنم....بهتر است که یک فیلد برای متن آگهی در گرید نمایش داده شود زیرا به صورت معمول چنین کاری انجام نمی شه،چون tooltip فقط یک توضیح کوتاه هست نه یکی از مقادیر مهم.

می توانید به جای tooltip از یک لیبل یا تکست باکس استفاده کنید، که با کلیک کردن کاربر بر روی هر ردیف، متن آگهی در یک لیبل یا تکست باکس نمایش داده بشود(همان طور که گفتم در این صورت به یک dataset برای دسترسی به مقادیر جدول نیاز خواهید داشت)
Object o = dataSet.Tables[“TableNameOrIndex”].Rows[0]["ColumnNameOrIndex"];