PDA

View Full Version : سوال: تغيير رنگ كاراكترهاي يك رشته



Mamad.Net
شنبه 07 فروردین 1389, 09:27 صبح
با سلام و تبريك سال نو خدمت دوستان عزيز

آيا كسي از دوستان ميتونه بگه كه چطور ميشه رنگ تعدادي از كاراكتر هاي يك رشته را آن هم بصورت انتخابي تغيير داد و هنگام نمايش متن در خروجي (تكست باكس،مسيج باكس،سلولي از گريد و ...)متن بصورت چند رنگ ديده شود

متشكرم

Shahram_Shobeiri
شنبه 07 فروردین 1389, 09:34 صبح
فکر نمی کنم که امکانش به صورت استاندارد وجود داشته باشه. چون رنگ به کنترل اختصاص پیدا می کنه نه به رشته یا کاراکتر.

Mamad.Net
شنبه 07 فروردین 1389, 10:15 صبح
از شدن كه شدنيه فقط نميدونم چطوري و از چه راهي براي همين پرسيدم و نياز فوري هم دارم

Shahram_Shobeiri
شنبه 07 فروردین 1389, 10:41 صبح
بله آقا از قدیم گفتن کار نشد نداره. اما همونطور که گفتم راه استانداردی وجود نداره. و برای این کار شما باید کنترل های خودتون رو بنویسید. من برای لیبل یه چیزایی پیدا کردم که یه جورایی کلک رشتی بود. یعنی میومد یه بیت مپ تعریف می کرد و روش با رنگ های مختلف کاراکتر های رشته رو نقاشی می کرد. واسه کنترل های دیگه هم راه هایی وجود داره.

Shahram_Shobeiri
شنبه 07 فروردین 1389, 11:01 صبح
اینم یه مثال واسه richtext box که خودش این قابلیت رو داره.

Mamad.Net
شنبه 07 فروردین 1389, 11:18 صبح
از فايلي كه ارائه دادي ممنون
اما من همون كنترهايي كه گفتم بخصوص يك سلول از گريد برام مهمه و يه زماني از كسي شنيدم كه به كمك عبارات منظم اين كار امكان پذيره ولي به اون شخص دسترسي ندارم گفتم بپرسم شايد كسي بدونه كه چطور اين كار رو ميشه انجام داد

Shahram_Shobeiri
شنبه 07 فروردین 1389, 11:19 صبح
واسه کمبو باکس هم یه روش پیدا کردم. به این ترتیب که به همون روشی که در مورد لیبل توضیح دادم یک سری بیت مپ (آیتم های کمبو باکس) تولید کنی و توی هر کدوم از اونها متن دلخواه رو کاراکتر به کاراکتر با رنگ های مختلف رسم کنی. بعد بیای و این لیست بیت مپ رو در یک imagelist قرار بدی و در نهایت این لیست رو به کمک کلاسی که ضمیمه کردم به کمبو باکس نسبت بدی. این هم یک مثال برای نسبت دادن imagelist به combobox

Imports Talex.Controls.ImageCombo
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim m As New ImageCombo
Dim m1 As New ComboBoxImageItem("1", 1, "0")
Dim m2 As New ComboBoxImageItem("2", 2, "1")
m.Parent = Me
m.Width = 200
m.ImageList = myImageList
m.Items.Add(m1)
m.Items.Add(m2)
End Sub
End Class

Mamad.Net
شنبه 07 فروردین 1389, 12:22 عصر
از راه حل هايي كه ارائه دادي ممنونم ولي من دنبال يه راه كلي هستم كه براي تمام كنترل هاي نمايش دهنده متن كارايي داشته باشه و با توجه به نكته اي كه پيشتر گفتم به گفته يكي اين كار به كمك عبارات منظم امكان پذيره و من به دنبال چگونگي آن به همين روش هستم