ตอนนี้มีปัญหาการทำงานของ For loop กับ DataGridViewComboBoxColumn ค่ะ รบกวนสอบถามวิธีแก้ไขกับผู้มีความรู้อย่างลึกซึ้งทุกท่านค่ะ
ความต้องการและปัญหาที่พบมีดังนี้ค่ะ
เมื่อ user กด dropdown DataGridViewComboBoxColumn(Rework Action) หากเลือก Replace ให้มีป๊อปอัพขึ้นมาเพื่อใหเ user ใส่ค่า string และค่า string ไปโชว์ที่ DataGridViewTextBoxColumn(IQR)
ปัญหาคือ
1) ป็อปอัพเด้งขึ้นมาอีกครั้ง(หลายๆครั้งเมื่อกด OK หรือ Cancle ที่ป็อปอัพ) หลังจากใส่ข้อมูลในป็อปอัพครั้งแรกไปแล้ว
2) เมื่อ user กด dropdow อีกครั้ง ป็อปอัพเด้งก็ขึ้นมา ทั้งที่ยังไม่ได้เลือกเป็นเป็น Replace ค่ะ
Code (VB.NET)
Private Sub dg_showPCBAOut_EditingControlShowing(ByVal sender As System.Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles dg_showPCBAOut.EditingControlShowing
Dim editingComboBox As ComboBox = e.Control
AddHandler editingComboBox.SelectedValueChanged, AddressOf Me.ReworkAct_SelectedValueChanged
End Sub
Private Sub ReworkAct_SelectedValueChanged(sender As Object, e As EventArgs)
Dim combo As ComboBox = CType(sender, ComboBox)
For i As Integer = dg_showPCBAOut.Rows.Count - 1 To 0 Step -1
If combo.SelectedValue = "Replace" And dg_showPCBAOut.Rows(i).Cells(7).Selected Then
myValue = InputBox("โปรดใส่หมายเลข IQR", "Input IQR Box")
If myValue <> "" Then
dg_showPCBAOut.Item("IQRBox_", i).Value = myValue
End If
End If
Next
End Sub
Tag : VBScript, Win (Windows App), VS 2017 (.NET 4.x), Windows
if dg.columns(dg.currentcell.columindex).name = "Rework Action" then 'ใช่ column ที่ต้องการให้แสดง pop up
Dim editingComboBox As ComboBox = e.Control
AddHandler editingComboBox.SelectedValueChanged, AddressOf Me.ReworkAct_SelectedValueChanged
else 'ไม่ใช่ column ที่ต้องการให้แสดง pop up
removeHandler ...
end if