If you want to add data via BindingSource AddNew here is a comceptual example which means you would need to have private variables when getting dropped data to set then use in the AddingNew event.
Code:Public Class Form1 WithEvents bsData As New BindingSource Private CalcColumn As String = "partqty" Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load Using MockedData As New DataTable() MockedData.Columns.AddRange(New DataColumn() _ { New DataColumn With { .ColumnName = "Identifier", .DataType = GetType(Int32), .AutoIncrement = True }, New DataColumn("PartName", GetType(String)), New DataColumn(CalcColumn, GetType(Int32)) } ) MockedData.Rows.Add(New Object() {Nothing, "Part A", 100}) MockedData.Rows.Add(New Object() {Nothing, "Part 99", 34}) MockedData.Rows.Add(New Object() {Nothing, "Part B", 4}) bsData.DataSource = MockedData End Using CType(bsData.DataSource, DataTable).AcceptChanges() DataGridView1.DataSource = bsData End Sub Private Sub bsData_AddingNew( ByVal sender As Object, ByVal e As System.ComponentModel.AddingNewEventArgs) _ Handles bsData.AddingNew Dim dv As DataView = TryCast(bsData.List, DataView) Dim rv As DataRowView = dv.AddNew() rv("PartName") = "(new)" rv(CalcColumn) = 0 e.NewObject = rv bsData.MoveLast() End Sub Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click bsData.AddNew() End Sub End Class




Reply With Quote