PDA

View Full Version : چگونه می توانم به خاصیت SelectedIndex این combobox دسترسی داشته باشم.(datagridvie)



ir_ali_s
دوشنبه 11 اردیبهشت 1385, 19:39 عصر
من از یک datagridview استفاده می کنم .یکی از ستونهای ان را از نوع combobox تعریف کرده ام چگونه می توانم به خاصیت SelectedIndex این combobox دسترسی داشته باشم.
(vb.net 2005 )

behzad_gh
دوشنبه 11 اردیبهشت 1385, 20:59 عصر
سلام
سلام من از روش زیر استفاده میکنم

Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho wingEventArgs) Handles DataGridView1.EditingControlShowing
If TypeOf (e.Control) Is DataGridViewComboBoxEditingControl Then
Dim cmb As ComboBox = CType(e.Control, ComboBox)
AddHandler cmb.SelectedIndexChanged, New EventHandler(AddressOf cmb_SelectedIndexChanged)
End If
End Sub

Private Sub cmb_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim cmb As ComboBox = CType(sender, ComboBox)
Dim a As Integer = cmb.SelectedIndex
End Sub

موفق باشید :تشویق:

ir_ali_s
سه شنبه 12 اردیبهشت 1385, 06:53 صبح
ممنون امتحانش می کنم:تشویق:

ir_ali_s
سه شنبه 12 اردیبهشت 1385, 08:09 صبح
سلام با عرض معضرت
حالا اگر دو تا از ستون های grid از نوع combobox باشند و بخواهیم با انتخاب یکی از combobox ها دیگری هم همان SelectedIndex را بگیرد باید چه کار کنیم ؟:متفکر:

behzad_gh
سه شنبه 12 اردیبهشت 1385, 11:44 صبح
سلام.

Private Sub cmb_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim cmb As ComboBox = CType(sender, ComboBox)
Select Case DataGridView1.SelectedCells(0).ColumnIndex
Case 0 'Combo1
Dim a As Integer = cmb.SelectedIndex
Case 2 'Combo2
Dim a As Integer = cmb.SelectedIndex
End Select
End Sub

موفق باشید :تشویق:

ir_ali_s
سه شنبه 12 اردیبهشت 1385, 16:05 عصر
سلام
من که نفهمیدم باید چکار کنم!
من می خواهم هر دو combobox با تغییر selectindex هر کدوم ، selectindex مشابه بگیرند
یعنی selectindex اونی را که تغییر کرده به دیگری نسبت بدهم .
در ضمن در addReference یه چیز جالب پیدا کردم که نامش اینه:DataGridViewComboBoxEditingControl1
که توسط خاصیت EditingControlDataGridView جدولشو معلوم می کنی و توسط خاصیت EditingControlRowIndex شماره ستون جدول
اما بازهم نتوانستم اون کاری که می خواستم بکنم !!!!!!!!:متفکر:

masysh
سه شنبه 12 اردیبهشت 1385, 17:09 عصر
من الان 2005 ندارم ولی فکر میکنم به این صورت باشد:
فرض کنیم اولین ستون و دومین ستون ،ستونهای کومبو در گرید شما باشد و شما می خواهید با تغییر ایندکی ستون اول ستون دوم نیز ایندکی مشابه بگیرد.
اگر field1 به ستون یک و field2 به ستون دو بایند شده باشند و هر دو فیلد در جدول table1 باشند. در اینصورت:


private sub dgv_cellvalue changed()
if dgv.rows(0).cells(0).value<>"" then
if e.columnindex=0 then
dim str as string="select field2 from table1 where field1=" & dgv.currentrow.cells(0).value
dim cm as new sqlcommand(str,cn)
dim dr as sqldatareader
dr=cm.executereader
while dr.read
dgv.currentrow.cells(1).value=dr.item("field2")
next
dr.close
end if


فقط در رابطه با syntax مطمئن نیستم چون محیط 2005 نداشتم.
موفق باشید.

behzad_gh
سه شنبه 12 اردیبهشت 1385, 19:49 عصر
سلام
من یک نمونه گذاشتم البته من Value را برابر با cmb.text قرار دادم . فکر کنم یکم روش کار کنید کارتون رو راه میندازه.

موفق باشد.

ir_ali_s
سه شنبه 12 اردیبهشت 1385, 21:46 عصر
سلام
به دلیل اینکه من خاصیت datasource مربوط ستون ها را با dataset مقدار دهی کردم نمی توانم به خاصیت text این ستون ها مقدار نسبت بدم.:متفکر: