PDA

View Full Version : انتخاب سطرهای یک گرید بدونه استفاده از دستور حلقه



mahsa.admin
دوشنبه 19 دی 1390, 14:56 عصر
باسلام
فرضا میخواهیم در یک گرید که از دو ستون تشکیل شده یک ستون چک با کس و دیگری اسم افراد
است با زدن چک با کس ها (true کردن) اسم افراد که ستون دوم هست در یک مسج باکس نشان داده شود
برای این کار از کد زیر استفاده میکنیم:
For I As Integer = 0 To dgv.RowCount - 1
If dgv.Item("chek", I).Value = True Then
MsgBox(dgv.Item("name", I).Value
End If


Next


این یک نمونه ساده جهت انتخاب کل ردیف های یک گرید با دستو ر For I As Integer = 0 To dgv.RowCount - 1 که یک حلقه هست میباشد
حالا سوال اینجاست چطور میشود بدونه استفاده از حلقه کل ردیف های یک گریدو انتخاب کرد مثل این که ردیف اخر یک گریدو انتخاب میکند
dgv.Item("id6", dgv.Rows.Count - 1).Value
توضیح: چطور فقط با یک خط کد مثلا بالا که ردیف اخرو فقط انتخاب کرد کل ردیف را انتخاب کنیم مثل همان حلقه که بالا استفاده کردیم اما حلقه نباشد

sh2007
دوشنبه 19 دی 1390, 15:11 عصر
با دستورات sql

select * from table1 where feild1='xna'me

mahsa.admin
دوشنبه 19 دی 1390, 18:57 عصر
با تشکر
فکر کنم خوب نتونستم منظورمو بیان کنم
فرض میکنیم این گرید به دیتا بیس وصل نباشد یعنی اطلاعات را به شکل دستی وارد گرید کنیم وبعد از این گرید بخواهیم تمام ردیف هاشو انتخاب کنیم

alimanam
دوشنبه 19 دی 1390, 20:19 عصر
با سلام

http://up6.iranblog.com/images/qp2c46c76dm01wmqtfsv.png


Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To 9
dgv1.Rows.Add()
dgv1.Item(1, i).Value = "First Name " & i + 1
dgv1.Item(2, i).Value = "Last Name " & i + 1
Next
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
dgv2.Rows.Clear()
Dim rowindex As Integer = 0
For Each row As DataGridViewRow In dgv1.Rows
If row.Cells(0).Value = True Then
dgv2.Rows.Add()
dgv2.Item(0, rowindex).Value = row.Cells(1).Value
dgv2.Item(1, rowindex).Value = row.Cells(2).Value
rowindex += 1
End If
Next
End Sub

End Class


موفق باشید./

alimanam
دوشنبه 19 دی 1390, 20:41 عصر
اینم سورس کامل ترش !

http://up1.iranblog.com/images/gi9m105o6olvp2vmyn94.png

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To 9
dgv1.Rows.Add()
dgv1.Item(1, i).Value = "First Name " & i + 1
dgv1.Item(2, i).Value = "Last Name " & i + 1
Next
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
dgv2.Rows.Clear()
Dim rowindex As Integer = 0
For Each row As DataGridViewRow In dgv1.Rows
If row.Cells(0).Value = True Then
dgv2.Rows.Add()
dgv2.Item(0, rowindex).Value = row.Cells(1).Value
dgv2.Item(1, rowindex).Value = row.Cells(2).Value
rowindex += 1
End If
Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For Each row As DataGridViewRow In dgv1.Rows
row.Cells(0).Value = True
Next
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
For Each row As DataGridViewRow In dgv1.Rows
row.Cells(0).Value = False
Next
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
For Each row As DataGridViewRow In dgv1.Rows
row.Cells(0).Value = Not row.Cells(0).Value
Next
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
For Each row As DataGridViewRow In dgv1.Rows
If row.Cells(0).Value = True Then dgv1.Rows.RemoveAt(row.Index)
Next
End Sub

End Class

mahsa.admin
دوشنبه 19 دی 1390, 20:46 عصر
با تشکر از استاد alimanam
در کد شما جهت انتخاب کل سطر های گرید از یک حلقه استفاده شده Each row As DataGridViewRow In dgv1.RowsIf این شبیه همون کدی هست که من در ابتدا نوشتم یعنی از یک حلقه استفاده شده در حالی که من کدی شبیه این مد نظرم هست
dgv.Item("name", dgv.Rows.Count - 1).Value که در این کد یک خطی به اخرین سطر اشاره شده حال من میخوام با یک کدی شبیه این بدونه استفاده از حلقه به کل سطر ها اشاره کنه همون کاری که این کد با استفاده از حلقه میکنه For I AsInteger = 0 To dgv.RowCount - 1

alimanam
دوشنبه 19 دی 1390, 20:51 عصر
چیزی که میخواین فکر نمیکنم عملی باشه . کاملاً غیر منطقی هستش در کدی که شما اشاره کردین اشاره به یک سطر داره و چیزی که شما میخواین اشاره به کل سطرها میکنه پس بدون حلقه نمیشه از جز به کل رسید اگه فهم این مطلب براتون مشکله سعی کنین کمی بیشتر وقت برای یادگیری زبان برنامه نویسیتون بزارین .

موفق باشید ./