PDA

View Full Version : سوال: تغییر رنگ یک رکورد خاص در دیتاگرید



MOSTAFANAVVAB
دوشنبه 28 بهمن 1387, 18:20 عصر
آقا ، دوستان ،

سلام

دوستان من یک دیتاگرید گذاشتم که توی آن را با این کد پر کردم
datagridview.datasourc=dataset.table("اسم جدول")

این دیتاگرید 6 فیلد داره که فیلد آخر یک چک باکسه که همون هم از دیتابیس کنترل میشه یعنی ترو یا فالس میشه حلا مشکل من اینجاست که من میخواهم توی این لیست اون رکرد هایی که فیلد آخرشون مساوی ترو هست را با یک رنگ دیگه نشون بدم در ضمن اگر یک محبت دیگر هم بکنید که در همین راستا اگر ما بخواهیم اینطور بگوییم که اون فیلدی که در دیتا گرید با یک فیلد از جدول ثانی مساوی باشه یک رنگ دیگه بشه

جون هر کی دوست دارید جوابم را بدیید نزدیک یکی دو هفته است هر روز دارم با این کدا کار می کنم هنوز کاشف نشدم:گریه::گریه:

masoud.t123
دوشنبه 28 بهمن 1387, 19:23 عصر
در سایت جستجو کن پیدا می کنی

MOSTAFANAVVAB
دوشنبه 28 بهمن 1387, 19:54 عصر
اوه کلی جستجو کردم هیچ کدی در این زمینه نیافتم آقا مسعود

anooshiran
دوشنبه 28 بهمن 1387, 22:52 عصر
سلام دو ست عزيز
از كد زير ميتواني براي منظورت استفاده كني
البته من يك ديتاگريد ويو با سه ستون ساختم
و ديتابيس رو هم مجبور شدم درست كنم
در ست يعد از اينكه ديتاسورس رو تعيين كردي
بايد DataPropertyName ها را تعيين كني و بعد به آن For.........Next توجه كن
تغيير رنگ در آنجا انجام گرفته




Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SetupdataSet()
End Sub
Private Sub SetupdataSet()
Dim dt As DataTable
dt = New DataTable
dt.Columns.Add("C1")
dt.Columns.Add("C2")
dt.Columns.Add("C3")
dt.Rows.Add(1, "Hassan", True)
dt.Rows.Add(2, "Ali", False)
dt.Rows.Add(3, "Taghi", False)
dt.Rows.Add(4, "Hossein", True)
dt.Rows.Add(5, "Elham", True)
dt.Rows.Add(6, "Ziba", False)
dt.Rows.Add(7, "Mohsen", True)
DataGridView1.AutoGenerateColumns = False
DataGridView1.DataSource = dt
DataGridView1.Columns(0).DataPropertyName = "C1"
DataGridView1.Columns(1).DataPropertyName = "C2"
DataGridView1.Columns(2).DataPropertyName = "C3"
For i As Int16 = 0 To DataGridView1.RowCount - 1
If DataGridView1.Item(2, i).Value = True Then
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Aqua
Else
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Red
End If
Next
End Sub
End Class

MOSTAFANAVVAB
دوشنبه 28 بهمن 1387, 23:32 عصر
دوست عزیز
با تشکر از زحمتی که کشیدی
ولی یک سوال
شما تمام مقادیری که به داخل دیتا گرید ریختی را با کد نویسی انجام دادی ولی من اول دیتا ست دات تیبل را مساوی دیتاگرید دات دیتا سورس قراردادم و در منوی خود دیتاگرید در گزینه مموری... اسم فیلد های دیتا بیس را نوشتم

با این شرایت چه کنم؟

anooshiran
سه شنبه 29 بهمن 1387, 07:19 صبح
دوست عزيز

مهم نيست كه شما ديتاسورس رو چجوري تعريف كرديد. من براي اين كه نخواستم از ديتاست استفاده كنم از ديتاتيبل استفاده كردم.
در هرصورت شما چه تيبل چه ديتاست رو به گريد بديد نتيجه يكي است
خط اول كد زير هم به خاطر اين است كه اگر ستون هات رو تعريف كردي بعد از تعريف ديتاسورس ستون جديدي ايجاد نشه


DataGridView1.AutoGenerateColumns = False
( DataGridView1.DataSource = dset.Tables(dt


كد زير هم براي اين هست كه فقط بگي به هر ستوني از گريد چه فيلدي از ديتاسورس تعلق مي گيره


DataGridView1.Columns(0).DataPropertyName = "C1"
DataGridView1.Columns(1).DataPropertyName = "C2"
DataGridView1.Columns(2).DataPropertyName = "C3"


به هر صورت براي تغيير رنگ فقط قطعه كد زير به دردت ميخوره كه شماره ستون يا نام ستوت را DataGridView1.Item(2, i).Value به جاي عدد 2 ميگذاري



For i As Int16 = 0 To DataGridView1.RowCount - 1
If DataGridView1.Item(2, i).Value = TrueThen
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Aqua
Else
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Red
EndIf
Next

MOSTAFANAVVAB
سه شنبه 29 بهمن 1387, 07:59 صبح
آقا دستت در نکنه الهی که دستت برسه به در کعبه
یه دنیا مر30 اقا اکه منت بزارید و یک سری بهhttp://barnamenevis.org/forum/showthread.php?t=145921 بزنید بنده نوازی کردید

راستی چطوره که شما انقدر راحت به این کد ها دست رسی پیدا می کنید و بلد هستید ملی من با ید جونم در بیاد تا مثلا یک کد به این شکل بنویسم