Click here to Skip to main content
15,915,163 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello guys!

I have a DataGridView On form 1 (TasksList)
and kind of Registration on form 2 that have "Save" Button which should update the Grid.

When I am clicking on the save button, it is saves the new record but I Can't refresh it.

The only way I can do it now is updating from the form 1.

Form 1

VB
Public Class TasksList
    Public Sub refresh_data()
        dgv_all.SuspendLayout()
        bs_tasklist.SuspendBinding()
        'Better Using OrderBY
        bs_tasklist.DataSource = To_DoList.GetInstance.Tasks.OrderBy(Function(x) x.Status).ToList()
        dgv_all.DataSource = Nothing
        dgv_all.DataSource = bs_tasklist
        bs_tasklist.ResumeBinding()
        dgv_all.ResumeLayout()
        'Sorting Failed :(, Need more research
        'dgv_all.Sort(Status, System.ComponentModel.ListSortDirection.Ascending)
        Dim Tasks As TaskItem
        Dim Incomplete As List(Of TaskItem) = New List(Of TaskItem)
        Dim Overdue As List(Of TaskItem) = New List(Of TaskItem)
        Dim DateNow As Date = Date.Now
        For i As Integer = 0 To dgv_all.Rows.Count - 1
            Tasks = CType(dgv_all.Rows(i).DataBoundItem, TaskItem)
            If Tasks.Priority = TaskPriority.High Then
                dgv_all.Rows(i).DefaultCellStyle.ForeColor = Color.Red
            ElseIf Tasks.Priority = TaskPriority.Low Then
                dgv_all.Rows(i).DefaultCellStyle.ForeColor = Color.Green
            End If
            If Tasks.Status = TaskStatus.Complete Then
                dgv_all.Rows(i).DefaultCellStyle.Font = New Font(Me.Font, FontStyle.Strikeout)
            Else
                Incomplete.Add(Tasks)
            End If
            If Tasks.DateDue < DateNow.Date Then
                Overdue.Add(Tasks)
            End If
        Next
        dgv_incomplete.SuspendLayout()
        dgv_incomplete.DataSource = Nothing
        dgv_incomplete.DataSource = Incomplete
        dgv_incomplete.ResumeLayout()

        dgv_overdue.SuspendLayout()
        dgv_overdue.DataSource = Nothing
        dgv_overdue.DataSource = Overdue
        dgv_overdue.ResumeLayout()
        My.Forms.ParentForm.Stats()
    End Sub


form 2 with the save button

VB
Private Sub btn_taskSave_Click(sender As Object, e As EventArgs) Handles btn_taskSave.Click
       Dim DateNow As Date = Date.Now
       If tb_name.Text = String.Empty Or tb_name.Text = "Type Name Here" Then
           MsgBox("Please enter valid name")
       Else
           If chb_completed.Checked = True Then
               Task.Status = TaskStatus.Complete
           Else
               Task.Status = TaskStatus.Incomplete
           End If
           Task.Name = tb_name.Text
           Task.DateDue = dtp_datedue.Value
           Task.Description = rtb_description.Text
           If rb_high.Checked = True Then
               Task.Priority = TaskPriority.High
           ElseIf rb_normal.Checked = True Then
               Task.Priority = TaskPriority.Normal
           ElseIf rb_low.Checked = True Then
               Task.Priority = TaskPriority.Low
           End If
           If NewTask = True Then
               Task.DateCreated = DateNow.Date
           End If
           'woaah it's duplicating, if statement saves the world
           If NewTask = False Then
               To_DoList.GetInstance.Tasks.Remove(Me.Task)
           End If
           To_DoList.GetInstance.Tasks.Add(Me.Task)
           Me.Close()

       End If
   End Sub
Posted
Comments
Aarti Meswania 19-Mar-14 4:25am    
are you opening form2 on Form1(buton click or grid view row click- inshort opening from2 from form1)?
syed shanu 19-Mar-14 4:53am    
YOu question is very similar to this one http://www.codeproject.com/Answers/745002/In-Csharp-How-do-I-call-a-function-and-pass-it-tex?cmt=603262#answer1 . you can make form 2 as formdialog and set the save button proerty to DIALOGRESUTL=OK and in form1 i think your opening form 2
In form 1 button click.
Form2 objfrm= new Form2();
if (objfrm.ShowDialog() == DialogResult.OK)
{
refresh_data();
}

1 solution

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900