我有一个在面板内打开的表单。它有一个Datagridview。我想要做的是当我选择一行并单击编辑时,我会在编辑表单中获取当前所选行的文本。我以前在使用Showdialog时有这个工作。这次我不希望它以showdialog的形式出现。
我正在使用的代码使用Datagrid关闭表单,并确实显示顶行正常。但是当我选择不同的行时,它仍会显示编辑表单中的顶行。
以下是代码:
Try
If (CIM.Panel2.Controls.Count > 0) Then
CIM.Panel2.Controls.RemoveAt(0)
End If
Dim F1 As New CIMCLIENTEDIT()
F1.TopLevel = False
F1.Dock = DockStyle.Fill
CIM.Panel2.Controls.Add(F1)
F1.Show()
F1.txtstdid.Text = dgvData.CurrentRow.Cells(1).Value.ToString
F1.txtName.Text = dgvData.CurrentRow.Cells(2).Value.ToString
F1.txtEmail.Text = dgvData.CurrentRow.Cells(3).Value.ToString
F1.txtNo.Text = dgvData.CurrentRow.Cells(4).Value.ToString
F1.txtAddress.Text = dgvData.CurrentRow.Cells(5).Value.ToString
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
End Try
代码是与showdialog一起使用的代码的精确副本。显然上面的代码在打开编辑表单之前关闭了面板中的第一个表单,但是,它似乎确实正好让Datagrid的顶行。
这有效:
Try
CIMCLIENTEDIT.Text = "Edit Details"
CIMCLIENTEDIT.txtstdid.Text = dgvData.CurrentRow.Cells(0).Value.ToString
CIMCLIENTEDIT.txtName.Text = dgvData.CurrentRow.Cells(1).Value.ToString
CIMCLIENTEDIT.txtEmail.Text = dgvData.CurrentRow.Cells(2).Value.ToString
CIMCLIENTEDIT.txtNo.Text = dgvData.CurrentRow.Cells(3).Value.ToString
CIMCLIENTEDIT.txtAddress.Text = dgvData.CurrentRow.Cells(4).Value.ToString
CIMCLIENTEDIT.ShowDialog()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
End Try
非常感谢,
马特
答案 0 :(得分:1)
我忽略了一些非常简单的事情......看来我本来应该关闭小组了!有道理..
Try
Dim F1 As New CIMCLIENTEDIT()
F1.TopLevel = False
F1.Dock = DockStyle.Fill
CIM.Panel2.Controls.Add(F1)
F1.Show()
F1.txtstdid.Text = dgvData.CurrentRow.Cells(1).Value.ToString
F1.txtName.Text = dgvData.CurrentRow.Cells(2).Value.ToString
F1.txtEmail.Text = dgvData.CurrentRow.Cells(3).Value.ToString
F1.txtNo.Text = dgvData.CurrentRow.Cells(4).Value.ToString
F1.txtAddress.Text = dgvData.CurrentRow.Cells(5).Value.ToString
If (CIM.Panel2.Controls.Count > 0) Then
CIM.Panel2.Controls.RemoveAt(0)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
End Try
答案 1 :(得分:0)
关键点是你的dgvData
变量。请检查初始化的方式和位置,以及设置CurrentRow
属性的位置。