کمبو باکس در datagridview
سلام. من یه datagridview دارم که به یه dataset متصلش کردم. حالا میخوام یکی از ستونهای datagrid به صورت combo باشه و از یه table دیگه پر بشه. مثلا برای انتخاب نام شهر محل تولد یه کمبو باز بشه که محتویات جدول نام شهر ها رو داشته باشه. این کمبو رو چه جوری بسازم؟
نقل قول: کمبو باکس در datagridview
سلام دوست من
ابتدا شما ستونهای دیتاکراید رو از طریق کد نویسی اضافه کنید
Dim col_id_kala As DataGridViewTextBoxColumn
Dim col_kala_name As DataGridViewComboBoxColumn
Public Sub Design_Gridview(ByRef Gridview As DataGridView)
' دیتاگراید ویودر حالت اجرا
Gridview.DataSource = Nothing
Gridview.Columns.Clear()
Gridview.Rows.Clear()
Gridview.Refresh()
Gridview.AutoGenerateColumns = False
col_id_kala = New DataGridViewTextBoxColumn
With col_id_kala
.Name = "col_id"
.DataPropertyName = "id_kala"
.HeaderText = "کد کالا"
.Width = 80
End With
col_kala_name = New DataGridViewComboBoxColumn
With col_kala_name
.Name = "col_kala_name"
.DataPropertyName = "name_kala"
.HeaderText = "شــــرح کالا"
.Width = 200
.AutoComplete = True
.DisplayStyleForCurrentCellOnly = True
.FlatStyle = FlatStyle.System
End With
Gridview.Columns.Add(col_id_kala )
Gridview.Columns.Add(col_kala_name )
End Sub
سپس روالی برای پر کردن یک کامبوباکس بسازید
Private Sub fill_sombodg(ByVal ComboBox1 as DataGridViewComboBoxColumn )
ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems
Dim CNN As OleDbConnection
Dim DAP As OleDbDataAdapter
Dim DS As DataSet
Dim cnnstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db.mdb"
CNN = New OleDbConnection(cnnstr)
cmd = New OleDbCommand
DAP = New OleDbDataAdapter("select * from table1", cnnstr)
DS = New DataSet
DAP.Fill(DS, "table1")
ComboBox1.DataSource = DS.Tables("table1")
ComboBox1.DisplayMember = "name_kala"
ComboBox1.ValueMember = "id"
DAP.Dispose()
End Sub
برای صدا زدن در فرم لود ابتداDesign_Gridview رو صدا بزن با یک ارگومان که همون دیتاکراید ویو شماست سپس روال بعدی مثل fill_sombodg(DG.Columns("col_kala_name")
نقل قول: کمبو باکس در datagridview
ممنون از توجهتون. بازم سئوال دارم: شما کل Grid رو خالی کردید. در حالیکه من میخوام از dataset پر بشه. اگر خالیش نکنم، combo به انتهای جدول اضافه میشه و من دوتا از اون ستون دارم. یکی که داخل dataset بوده و دیگری که من اضافه کردم. حالا چی کار کنم؟
نقل قول: کمبو باکس در datagridview
یه راه راحت تر بدون کد نویسی اینه که از propety های مخصوص اون ستونی که combobox کردی استفاده
کنی یعنی توی property هاش ابتدا datasource و سپس datamember رو روی اون جدولی که می خوای ازش
پر بشه تنظیم کن
نقل قول: کمبو باکس در datagridview
واقعا ممنون. بدون کد خیلی بهتره!:بامزه: