PDA

View Full Version : سوال: قابل کلیک کردن بخشی از یک متن



morteza271
چهارشنبه 02 مرداد 1392, 20:21 عصر
با سلام.

من میخوام در یه Label یه متنی قرار بدم که بخشی از اون متن قابل کلیک شدن باشه.
مثلا همانند عکس زیر میخوام کاربر وقتی موس رو بر روی کلمه اینجا نگه داره علامت دست ظاهر بشه و کاربر بتونه بر روی اون کلیک کنه.
یه جورایی اون کلمه بشه LinkLabel
آیا میشه اینکار رو کرد؟
ممنون میشم راهنمایی ام کنین...

107892

morteza271
پنج شنبه 03 مرداد 1392, 12:58 عصر
کمک کنید لطفا دوستان...

webdesign2
پنج شنبه 03 مرداد 1392, 13:25 عصر
<label >تست تست <a href="#"> تست </a>تست تست</label>

morteza271
پنج شنبه 03 مرداد 1392, 14:10 عصر
خب کل متن رو با لیبل بنویسید و جای اینجا رو خالی بزار و بجاش linkLabel بزار(یعنی دو Object)
ممنون دوست عزیز.
ولی این روش اصلا مناسب نیست!
من اون عکس رو فقط با عنوان مثال گذاشتم وگرنه من باید یک متن خیلی طولانی رو توی برنامم نمایش بدم که در داخل اون ممکنه حدود 100 کلمه رو نیاز داشته باشم که به صورت linkLabel قرار بدم!!!
به نظرتون با این روش شما میشه این کار رو انجام داد؟!!!
به هر حال بازم ممنون ولی از بقیه دوستان خواهش میکنم بر اساس این مثالی که الان گفتم یک راه بهم معرفی کنن...

morteza271
پنج شنبه 03 مرداد 1392, 14:11 عصر
<label >تست تست <a href="#"> تست </a>تست تست</label>
دوست عزیز این کدی که گذاشتین رو میشه توی سی شارپ استفاده کرد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

13601360
پنج شنبه 03 مرداد 1392, 16:03 عصر
هم از کنترل Richtextbox می تونید استفاده کنید
http://www.codeproject.com/Articles/9196/Links-with-arbitrary-text-in-a-RichTextBox
یا اینکه متن مورد نظر خودتون رو با فرمت html داخل یک کنترل Webbrowser لود کنید
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext.aspx

morteza271
جمعه 04 مرداد 1392, 00:00 صبح
هم از کنترل Richtextbox می تونید استفاده کنید
http://www.codeproject.com/Articles/9196/Links-with-arbitrary-text-in-a-RichTextBox
یا اینکه متن مورد نظر خودتون رو با فرمت html داخل یک کنترل Webbrowser لود کنید
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext.aspx
ممنونم دوست عزیز.
ولی من نمیخوام داخل یه تکست باکس یا بروزر باشه!
من باید متن رو داخل یه لیبل نمایش بدم که بگ گروند نداشته باشه و همینطور موارد دیگه!
در مورد لیبل نمیشه کاری کرد؟

morteza271
جمعه 04 مرداد 1392, 00:02 صبح
فکر میکردم متن به همون شکله
بهتره یک نمونه واقعی بزارید شاید بشه با تعریف لیبل و کد به صورت کد نویسی انجامش داد

به صورت کامل توضیح دادم دیگه نمونه واقعی چی میخواین؟؟؟؟
ضما فرض کنین من یه متن دارم که حدود 1000 خط هست و داخل هر خط هم یه کلمه هست که میخوام کاربر بتونه بر روی اون کلمه ها کلیک کنه. یعنی اون کلمه ها همانند linkLabel باشن همین...

مثلا عبارت زیر رو درنظر بگیرین :

آموزش برنامه نویسی به زبان سی شارپ با استفاده از...
آموزش برنامه نویسی جاوا در ....
..................
..................
..................

13601360
جمعه 04 مرداد 1392, 00:25 صبح
ممنونم دوست عزیز.
ولی من نمیخوام داخل یه تکست باکس یا بروزر باشه!
من باید متن رو داخل یه لیبل نمایش بدم که بگ گروند نداشته باشه و همینطور موارد دیگه!
در مورد لیبل نمیشه کاری کرد؟
این که مشکلی نیست
کافیه BorderStyle رو None کنید
BackColor رو هم رنگ فرم تون کنید

morteza271
جمعه 04 مرداد 1392, 00:34 صبح
این که مشکلی نیست
کافیه BorderStyle رو None کنید
BackColor رو هم رنگ فرم تون کنید
مشکل همینجاس دیگه!!!
بگ گروند فرمم یه عکس هست!!!!!!!!!!

MohammadHadi2031
جمعه 04 مرداد 1392, 04:45 صبح
سلام دوست عزیز
با استفاده از این کد:

linkLabel1.Links.Add(2, 3);

که از کاراکتر 2 تا 5 لینک می شود

morteza271
جمعه 04 مرداد 1392, 13:39 عصر
سلام دوست عزیز
با استفاده از این کد:

linkLabel1.Links.Add(2, 3);

که از کاراکتر 2 تا 5 لینک می شود
آقا دمت گرم واقعا عالی پاسخ دادین.
کاشی میشد بیشتر از یک بار ازتون تشکر کنم...
موفق باشید

mehrdad1991h
جمعه 04 مرداد 1392, 15:13 عصر
آقا دمت گرم واقعا عالی پاسخ دادین.
کاشی میشد بیشتر از یک بار ازتون تشکر کنم...
موفق باشید

اگر کنترول های تلریک را داری متن را به صورت html میزدی تو لیبل هر قسمتیش هر رنگ و لینک و سایز و ... که خودت میخواستی مشخص میکردی و بهت نشون میداد....

morteza271
جمعه 04 مرداد 1392, 23:57 عصر
اگر کنترول های تلریک را داری متن را به صورت html میزدی تو لیبل هر قسمتیش هر رنگ و لینک و سایز و ... که خودت میخواستی مشخص میکردی و بهت نشون میداد....
من از تلریک استفاده نمیکنم!
ولی از دات نت بار استفاده میکنم.
تست هم کردم کنترل لیبل دات نت بار اینهایی که گفتین رو داره ولی هرکار کردم نتونستم لینک بهش بدم! یعنی کاری کنم که وقتی روی یه کلمه خاص کلیک میشه رویداد مربوط به همون کلمه رخ بده!!!
بازم ممنونم دوست عزیز.

mehrdad1991h
شنبه 05 مرداد 1392, 00:23 صبح
من از تلریک استفاده نمیکنم!
ولی از دات نت بار استفاده میکنم.
تست هم کردم کنترل لیبل دات نت بار اینهایی که گفتین رو داره ولی هرکار کردم نتونستم لینک بهش بدم! یعنی کاری کنم که وقتی روی یه کلمه خاص کلیک میشه رویداد مربوط به همون کلمه رخ بده!!!
بازم ممنونم دوست عزیز.

نمیدونم
من از دات نت بار استفاده نمیکنم
ولی در تلریک این عمل را انجام داده بودم خودم....!!!
در هر جهت امیدوارم موفق باشید

korosh00
شنبه 05 مرداد 1392, 04:32 صبح
سلام
شما فکر می کنید این نرم افزارهای قرآنی را با چه روشی درست می کنند که وقتی روی هر متن کلیک می کنی اون آیه را می خواند .
منظورم اینه الان چطور میشه با زدن کلیک روی هر قسمت متن اولا اون قسمت انتخاب بشه و بعد یک رویدادی هم اجرا بشه مثل خواندن متن همون آیه ؟
ممنون

MohammadHadi2031
شنبه 05 مرداد 1392, 11:24 صبح
سلام
زمانی که شما متنی که لینک شده را کلیک می کنید رویداد linkLabel1_LinkClicked فراخوانی می شود
شما می توانید اطلاعات مربوط به لینک انتخاب شده را از طریق این کد بدست بیاورید: e.Link که دارای خصوصیات کاربردی است

korosh00
شنبه 05 مرداد 1392, 15:49 عصر
الان شما یک نمونه خیلی کوچیک بذار که وقتی کاربر روی مثلا اسم علی کلیک می کنه یک رویداد اجرا بشه مانند دادن یک پیغام .
ممنون

MohammadHadi2031
شنبه 05 مرداد 1392, 16:54 عصر
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
if (e.Link.LinkData.ToString() == "Ali")
{
MessageBox.Show("");
}

}

private void Form1_Load(object sender, EventArgs e)
{
linkLabel1.Links.Clear();
linkLabel1.Links.Add(2, 3,"Ali");
}

korosh00
شنبه 05 مرداد 1392, 22:33 عصر
من نوشته زیر رادارم
my name is ali
می خوام کاربر وقتی روی علی کلیک کرد پیغام ظاهر بشه و وقتی روی name کلیک کرد یک پیغام دیگر و غیره

ممنون جواب میدید

MohammadHadi2031
یک شنبه 06 مرداد 1392, 01:55 صبح
چه ایرادی داره؟

godofphp
یک شنبه 06 مرداد 1392, 02:13 صبح
خب سه تا لیبل بذار !!!
یکی رو لینک کن

korosh00
یک شنبه 06 مرداد 1392, 11:10 صبح
نه دوست عزیز ایراد نداشته من پست بالا را ویرایش کردم
ولی اونی که می خواستم نبود به هر حال با این تکنیک هم میشه کارم راه بیفته دستت درد نکنه .
تشکر

rayson
یک شنبه 06 مرداد 1392, 16:32 عصر
شما فکر می کنید این نرم افزارهای قرآنی را با چه روشی درست می کنند که وقتی روی هر متن کلیک می کنی اون آیه را می خواند .

برای ساخت چنین نرم افزار قرآنی نیاز به کد نویسی نیست شما با برنامه ساده Multi Media Builder هم میتونید چنین نرم افزاری درست کنید.
شما اگر میخواید که قیسمت خاصی از یک متن فقط این قابلیت را داشته باشد همانند بخش کلمات کلیدی سایت ( کلمات مهم یک متن را وارد میکنید)
فکر کنم این ایده خوبی باشه برای کار شما.
امیدوارم که بدردتون بخورد/
یا حق.

hojjatshariffam
دوشنبه 07 مرداد 1392, 18:41 عصر
ببین این به دردت می خوره؟
فکر کنم همونی باشه که می خوای

private void button3_Click(object sender, EventArgs e)
{
linkLabel1.Links.Clear();
linkLabel1.Links.Add(0, 3, "Ali");
linkLabel1.Links.Add(6, 3, "reza");
}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
MessageBox.Show(e.Link.LinkData.ToString());
}

اول یه لینک لیبل بنداز تو صفحه
بعد یه باتن هم بنداز و تو رویداد کلیک باتن و رویداد کلیک لیبلت کد بالا رو بنویس
فرمت رو اجرا کن اول روی باتن کلیک کن بعد لیبت دو قسمت میشه (متن بعضی قسمت هاش لینک دار میشه و بعضی قسمت هاش نه)
تو هر قسمتی که کلیک کنی متن متفاوت نشون میده
حالا می تونی به جای Ali و reza یه کلاس درست کنی و طبق اون عملیاتتو متفاوت تر بکنی
این کارو بکن ، اگه کارتو راه انداخت ، تشکر یات نره

korosh00
چهارشنبه 09 مرداد 1392, 05:13 صبح
از همه تشکر