OVH Cloud OVH Cloud

Combo dans datagrid

5 réponses
Avatar
Etudiant
bonjour je recherche un code me permettant de mettre une combo dans un
datagrid
merci

5 réponses

Avatar
Etudiant
Etudiant a écrit :
bonjour je recherche un code me permettant de mettre une combo dans un
datagrid
merci


en fait je voudrais que ca m'ajoute la combobox dans la ligne du datagrid.
j'ai teste datagrid1.controls.add(Combo) mais ca l'ajoute dans le
datagrid mais sur la ligne souhaitee,
auriez vous une solution?
merci
Avatar
Etudiant
Etudiant a écrit :
bonjour je recherche un code me permettant de mettre une combo dans un
datagrid
merci


je viens de trouver cela

cb.Items.Add("TT")
cb.Top = DataGrid1.Top + 15
cb.Left = DataGrid1.Left + 50
DataGrid1.Controls.Add(cb)

comment puis je faire pour capturer les coordonnees de la cellule
selectionnee?
Avatar
Etudiant
Etudiant a écrit :
bonjour je recherche un code me permettant de mettre une combo dans un
datagrid
merci


je viens de tester

Dim cb As New ComboBox

cb.Items.Add("TT")
cb.Top = DataGrid1.GetCurrentCellBounds.Top
cb.Left = DataGrid1.GetCurrentCellBounds.Left
DataGrid1.PreferredRowHeight = cb.Height
cb.Width = DataGrid1.GetCurrentCellBounds.Width
cb.Focus()

DataGrid1.Controls.Add(cb)

mon probleme est que je ne vois pas la fleche qui permet de deplier la
combo et qd je clique sur une autre cellule du datagrid et ben je la
vois, j'ai l'impression que la cellule du datagrid se dessine au dessus
de la combo.

Comment puis je faire pour palier ce pb?

merci
Avatar
Etudiant
Etudiant a écrit :
bonjour je recherche un code me permettant de mettre une combo dans un
datagrid
merci



Public MyCombo As New ComboBox

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

AddHandler MyCombo.TextChanged, AddressOf Ctrls_TextChanged

MyCombo.Name = "MyCombo"

MyCombo.Visible = False

MyCombo.Items.Clear()

MyCombo.Items.Add("Sales Representative")

MyCombo.Items.Add("Inside Sales Coordinator")

MyCombo.Items.Add("Vice President, Sales")

MyCombo.Items.Add("Sales Manager")

MyCombo.Items.Add("Flunky")

DataGrid1.PreferredRowHeight = MyCombo.Height

Dim Req As String = "SELECT * FROM Tbl_Client WHERE IdClient = 1"
Dim SqlConnection1 As New SqlClient.SqlConnection("Initial
Catalog=LocaGest;Data Source=POSTE_CHRISTIANSERVEURMSDE;Integrated
Security=SSPI;")
Dim o As New SqlClient.SqlDataAdapter(Req, SqlConnection1)
Dim ds As New DataSet
o.Fill(ds)
DataGrid1.DataSource = ds.Tables(0)


End Sub

Private Sub DataGrid1_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles DataGrid1.Paint

If DataGrid1.CurrentCell.ColumnNumber = 3 Then

MyCombo.Width = DataGrid1.GetCurrentCellBounds.Width
DataGrid1.Controls.Add(MyCombo)

End If

End Sub

Private Sub Ctrls_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs)

If DataGrid1.CurrentCell.ColumnNumber = 3 Then

MyCombo.Visible = False

If DataGrid1.Item(DataGrid1.CurrentCell) & "" = "" Then

SendKeys.Send("*")

End If

DataGrid1.Item(DataGrid1.CurrentCell) = MyCombo.Text

End If

End Sub


Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged

If DataGrid1.CurrentCell.ColumnNumber = 3 Then

MyCombo.Visible = False

MyCombo.Width = 0

MyCombo.Left = DataGrid1.GetCurrentCellBounds.Left

MyCombo.Top = DataGrid1.GetCurrentCellBounds.Top

MyCombo.Text = DataGrid1.Item(DataGrid1.CurrentCell) & ""

MyCombo.Visible = True

Else

MyCombo.Visible = False

MyCombo.Width = 0

End If

End Sub


Private Sub DataGrid1_Scroll(ByVal sender As Object, ByVal e As
System.EventArgs) Handles DataGrid1.Scroll

MyCombo.Visible = False

MyCombo.Width = 0

End Sub
Avatar
Denis
Bonjour,

Pour ma part, j'utilise dans ces cas l' extendedDataGrid de chez
http://www.leadit.be
C'est un dérivé du DataGrid classique mais personalisable à volonté et
relativement simple à utiliser (en plus, il est gratuit).

Aloha, 2nis.



"Etudiant" wrote:

bonjour je recherche un code me permettant de mettre une combo dans un
datagrid
merci