none
Datagridview Tool bar overwrites Column Headers RRS feed

  • Question

  • When I assign my tool bar to  (DGV.Dock = DockStyle.Top) it writes over the column headers. Any

    help would be appreviated.

    Option Strict On
    Option Explicit On
    Public Class Form1
        Private buttonPanel As New Panel
        Private WithEvents dgv As New DataGridView
        Private WithEvents BTN_First As New Button
        Private WithEvents BTN_Previous As New Button
        Private WithEvents TB_Record As New TextBox
        Private WithEvents BTN_Next As New Button
        Private WithEvents BTN_Last As New Button
        Private WithEvents TB_Search As New TextBox
        Private WithEvents BTN_ADD As New Button
        Private WithEvents BTN_Delete As New Button
        Private WithEvents BTN_Save As New Button
        Private WithEvents BTN_Quit As New Button
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            SetupDataGridView()
            Setup_toolbar()
    
        End Sub
        Private Sub SetupDataGridView()
            With dgv
                Me.Size = New Size(750, 450)
                .ColumnCount = 4
                .Name = "Stock Quote Grid"
                .Location = New Point(8, 8)
    
                .AutoSizeRowsMode =
                DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
                .ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
                .CellBorderStyle = DataGridViewCellBorderStyle.Single
                .DefaultCellStyle.ForeColor = Color.Black
                .DefaultCellStyle.BackColor = Color.Beige
    
                .EnableHeadersVisualStyles = False
    
                With .ColumnHeadersDefaultCellStyle
                    .BackColor = Color.Yellow
                    .ForeColor = Color.Red
                    .Font = New Font(dgv.ColumnHeadersDefaultCellStyle.Font.FontFamily, 12, FontStyle.Bold)
                End With
                .DefaultCellStyle.Font = New Font(dgv.DefaultCellStyle.Font.FontFamily, 12)
                ' te3sting with extra large font to prove it does work!
                '.Columns(1).DefaultCellStyle.Font = New Font(.DefaultCellStyle.Font.FontFamily, 20, FontStyle.Bold)
    
                .BackgroundColor = Color.AliceBlue
                .GridColor = Color.Black
                .RowHeadersVisible = False
                .Columns(0).Width = 250
                .Columns(0).Name = "Name"
                .Columns(1).Name = "Date"
    
                ' my change for testing font size
                .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    
                ' C2 is not a Date format
                .Columns(1).DefaultCellStyle.Format = "dd MM yyyy" ' Format for Date
    
                .Columns(2).Width = 100
                .Columns(2).Name = "Amount"
                .Columns(3).Width = 75
                .Columns(3).Name = "ID"
                .SelectionMode = DataGridViewSelectionMode.FullRowSelect
                .MultiSelect = True
                .Dock = DockStyle.Fill
    
                'my addition just for testing
                .Rows.Add("freddy1", Now.AddDays(11), 1.23, 43.25)
                .Rows.Add("freddy1", Now.AddDays(111), 1.23, 43.25)
                .Rows.Add("freddy1", Now.AddDays(12), 1.23, 43.25)
                .Rows.Add("freddy1", Now.AddDays(121), 1.23, 43.25)
                .Rows.Add("freddy1", Now.AddDays(112), 1.23, 43.25)
                .Rows.Add("freddy1", Now.AddDays(21), 1.23, 43.25)
            End With
            Controls.Add(dgv)
        End Sub
    
        Private Sub Setup_toolbar()
            With BTN_First ' 1
                .Width = 40
                .Text = "<<"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(10, 5)
            End With
            With BTN_Previous '2
                .Width = 35
                .Text = "<"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(55, 5)
            End With
            With TB_Record '3
                .Font = New Font("", 12.0, FontStyle.Regular)
                .Width = 65
                .ReadOnly = True
                .BackColor = Color.Wheat
                .Location = New Point(95, 5)
            End With
            With BTN_Next '4
                .Width = 35
                .Text = ">"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(165, 5)
            End With
            With BTN_Last '5
                .Width = 40
                .Text = ">>"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(205, 5)
            End With
            With TB_Search '3
                .Font = New Font("", 10.0, FontStyle.Regular)
                .Width = 100
                .ReadOnly = False
                .BackColor = Color.LightGreen
                .Location = New Point(255, 5)
            End With
            With BTN_ADD '6
                .Width = 70
                .Text = "ADD"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(395, 5)
            End With
            With BTN_Delete '7
                .Width = 85
                .Text = "DELETE"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(470, 5)
            End With
            With BTN_Save '8
                .Width = 75
                .Text = "SAVE"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(560, 5)
            End With
            With BTN_Quit '9
                .Width = 70
                .Text = "Quit"
                .BackColor = Color.LightSkyBlue
                .Location = New Point(640, 5)
            End With
            With buttonPanel
                .Controls.Add(BTN_First)
                .Controls.Add(BTN_Previous)
                .Controls.Add(TB_Record)
                .Controls.Add(BTN_Next)
                .Controls.Add(BTN_Last)
                .Controls.Add(TB_Search)
                .Controls.Add(BTN_ADD)
                .Controls.Add(BTN_Delete)
                .Controls.Add(BTN_Save)
                .Controls.Add(BTN_Quit)
                .Height = 30
                .Dock = DockStyle.Top
            End With
            Me.Controls.Add(Me.buttonPanel)
            Me.Controls.Add(dgv)
        End Sub
    End Class
    
    


    Charlie Soroka

    Thursday, March 15, 2018 10:35 PM

Answers

  • Hello Charlie,

    One of the reasons it's best to create the controls and place them on the form at design time is if something is out of place we can use the Document Outline window to drag controls into their proper position.

    If I were to place the following onto a form, the BindingNavigator (could be any control e.g. a tool menu etc)

    When I run the app the DataGridView is beneath the panel. But if I drag the DataGridView as follows we are good to go.

    If we were to peek behind the covers (from the project menu select show all files) open the form designer prior to using the Document Outline window to reposition controls note the order of when the controls are added to the form. Now use the Document Outline and reposition the control, go back and look at the designer and note the controls are added in a different order.

    You can try this via code, have not done this as I've never had a reason too but you can try it out :-)


    Please remember to mark the replies as answers if they help and unmark them if they provide no help, this will help others who are looking for solutions to the same or similar problem. Contact via my Twitter (Karen Payne) or Facebook (Karen Payne) via my MSDN profile but will not answer coding question on either.
    VB Forums - moderator
    profile for Karen Payne on Stack Exchange, a network of free, community-driven Q&A sites

    • Marked as answer by sorokateam Friday, March 16, 2018 7:30 PM
    Thursday, March 15, 2018 11:28 PM
    Moderator
  • Thanks for reply, I tried with same results.  When I locate toolbar on bottom it works ok. I am hoping

    to get it to work with tool bar on top.


    Charlie Soroka

    • Marked as answer by sorokateam Friday, March 16, 2018 7:30 PM
    Friday, March 16, 2018 1:57 AM
  • Thanks for reply, the reason I am trying to do everything in code is because of problems in designer when using my high resolution display laptop.  When I have a wide form it cuts off the right side when working in designer, so for I have found that visual studio changes the display setting in designer when using a high resolution display laptop.


    Charlie Soroka

    • Marked as answer by sorokateam Friday, March 16, 2018 7:30 PM
    Friday, March 16, 2018 2:12 AM
  • Hi

    Here is your code, with the addition of a SplitContainer. Strange color choices for some controls left unchanged.

    You can adjust the .SplitterDistance as needed.

    Option Strict On
    Option Explicit On
    Public Class Form1
      Private buttonPanel As New Panel
      Private WithEvents dgv As New DataGridView
      Private WithEvents BTN_First As New Button
      Private WithEvents BTN_Previous As New Button
      Private WithEvents TB_Record As New TextBox
      Private WithEvents BTN_Next As New Button
      Private WithEvents BTN_Last As New Button
      Private WithEvents TB_Search As New TextBox
      Private WithEvents BTN_ADD As New Button
      Private WithEvents BTN_Delete As New Button
      Private WithEvents BTN_Save As New Button
      Private WithEvents BTN_Quit As New Button
      Private splt As New SplitContainer
      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    	With splt
    	  .Orientation = Orientation.Horizontal
    	  .Dock = DockStyle.Fill
    	  .SplitterDistance = 30
    	  .FixedPanel = FixedPanel.Panel1
    	  .IsSplitterFixed = True
    	End With
    	Controls.Add(splt)
    	SetupDataGridView()
    	Setup_toolbar()
    
      End Sub
      Private Sub SetupDataGridView()
    	With dgv
    	  Me.Size = New Size(750, 450)
    	  .ColumnCount = 4
    	  .Name = "Stock Quote Grid"
    
    	  '  .Dock used below so this is redundant
    	  '  .Location = New Point(8, 8)
    
    	  .AutoSizeRowsMode =
    	  DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
    	  .ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
    	  .CellBorderStyle = DataGridViewCellBorderStyle.Single
    	  .DefaultCellStyle.ForeColor = Color.Black
    	  .DefaultCellStyle.BackColor = Color.Beige
    
    	  .EnableHeadersVisualStyles = False
    
    	  With .ColumnHeadersDefaultCellStyle
    		.BackColor = Color.Yellow
    		.ForeColor = Color.Red
    		.Font = New Font(dgv.ColumnHeadersDefaultCellStyle.Font.FontFamily, 12, FontStyle.Bold)
    	  End With
    	  .DefaultCellStyle.Font = New Font(dgv.DefaultCellStyle.Font.FontFamily, 12)
    	  ' te3sting with extra large font to prove it does work!
    	  '.Columns(1).DefaultCellStyle.Font = New Font(.DefaultCellStyle.Font.FontFamily, 20, FontStyle.Bold)
    
    	  .BackgroundColor = Color.AliceBlue
    	  .GridColor = Color.Black
    	  .RowHeadersVisible = False
    	  .Columns(0).Width = 250
    	  .Columns(0).Name = "Name"
    	  .Columns(1).Name = "Date"
    
    	  ' my change for testing font size
    	  .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    
    	  ' C2 is not a Date format
    	  .Columns(1).DefaultCellStyle.Format = "dd MM yyyy" ' Format for Date
    
    	  .Columns(2).Width = 100
    	  .Columns(2).Name = "Amount"
    	  .Columns(3).Width = 75
    	  .Columns(3).Name = "ID"
    	  .SelectionMode = DataGridViewSelectionMode.FullRowSelect
    	  .MultiSelect = True
    	  .Dock = DockStyle.Fill
    
    	  'my addition just for testing
    	  .Rows.Add("freddy1", Now.AddDays(11), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(111), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(12), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(121), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(112), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(21), 1.23, 43.25)
    	End With
      End Sub
    
      Private Sub Setup_toolbar()
    	With BTN_First ' 1
    	  .Width = 40
    	  .Text = "<<"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(10, 5)
    	End With
    	With BTN_Previous '2
    	  .Width = 35
    	  .Text = "<"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(55, 5)
    	End With
    	With TB_Record '3
    	  .Font = New Font("", 12.0, FontStyle.Regular)
    	  .Width = 65
    	  .ReadOnly = True
    	  .BackColor = Color.Wheat
    	  .Location = New Point(95, 5)
    	End With
    	With BTN_Next '4
    	  .Width = 35
    	  .Text = ">"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(165, 5)
    	End With
    	With BTN_Last '5
    	  .Width = 40
    	  .Text = ">>"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(205, 5)
    	End With
    	With TB_Search '3
    	  .Font = New Font("", 10.0, FontStyle.Regular)
    	  .Width = 100
    	  .ReadOnly = False
    	  .BackColor = Color.LightGreen
    	  .Location = New Point(255, 5)
    	End With
    	With BTN_ADD '6
    	  .Width = 70
    	  .Text = "ADD"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(395, 5)
    	End With
    	With BTN_Delete '7
    	  .Width = 85
    	  .Text = "DELETE"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(470, 5)
    	End With
    	With BTN_Save '8
    	  .Width = 75
    	  .Text = "SAVE"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(560, 5)
    	End With
    	With BTN_Quit '9
    	  .Width = 70
    	  .Text = "Quit"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(640, 5)
    	End With
    	With buttonPanel
    	  .Controls.Add(BTN_First)
    	  .Controls.Add(BTN_Previous)
    	  .Controls.Add(TB_Record)
    	  .Controls.Add(BTN_Next)
    	  .Controls.Add(BTN_Last)
    	  .Controls.Add(TB_Search)
    	  .Controls.Add(BTN_ADD)
    	  .Controls.Add(BTN_Delete)
    	  .Controls.Add(BTN_Save)
    	  .Controls.Add(BTN_Quit)
    	  .Height = 30
    	  .Dock = DockStyle.Top
    	End With
    	splt.Panel1.Controls.Add(buttonPanel)
    	splt.Panel2.Controls.Add(dgv)
      End Sub
    End Class


    Regards Les, Livingston, Scotland


    • Edited by leshay Friday, March 16, 2018 1:30 PM
    • Marked as answer by sorokateam Friday, March 16, 2018 7:31 PM
    Friday, March 16, 2018 11:11 AM
  • Thank you, it works great with the addition of a SplitContainer. Fantastic Code

    Charlie Soroka

    • Marked as answer by sorokateam Friday, March 16, 2018 7:31 PM
    Friday, March 16, 2018 3:38 PM

All replies

  • Hi

    Without verifying this, try

    1. Call Setup_toolbar before SetupDataGridView

    2. In SetupDataGridView:   .Location = New Point(8, buttonPanel.bottom+8)

    EDIT: You will need to add the DGV at end of  SetupDataGridView instead of at end of Setup_toolbar


    Regards Les, Livingston, Scotland




    • Edited by leshay Thursday, March 15, 2018 10:54 PM
    Thursday, March 15, 2018 10:44 PM
  • Hello Charlie,

    One of the reasons it's best to create the controls and place them on the form at design time is if something is out of place we can use the Document Outline window to drag controls into their proper position.

    If I were to place the following onto a form, the BindingNavigator (could be any control e.g. a tool menu etc)

    When I run the app the DataGridView is beneath the panel. But if I drag the DataGridView as follows we are good to go.

    If we were to peek behind the covers (from the project menu select show all files) open the form designer prior to using the Document Outline window to reposition controls note the order of when the controls are added to the form. Now use the Document Outline and reposition the control, go back and look at the designer and note the controls are added in a different order.

    You can try this via code, have not done this as I've never had a reason too but you can try it out :-)


    Please remember to mark the replies as answers if they help and unmark them if they provide no help, this will help others who are looking for solutions to the same or similar problem. Contact via my Twitter (Karen Payne) or Facebook (Karen Payne) via my MSDN profile but will not answer coding question on either.
    VB Forums - moderator
    profile for Karen Payne on Stack Exchange, a network of free, community-driven Q&A sites

    • Marked as answer by sorokateam Friday, March 16, 2018 7:30 PM
    Thursday, March 15, 2018 11:28 PM
    Moderator
  • Thanks for reply, I tried with same results.  When I locate toolbar on bottom it works ok. I am hoping

    to get it to work with tool bar on top.


    Charlie Soroka

    • Marked as answer by sorokateam Friday, March 16, 2018 7:30 PM
    Friday, March 16, 2018 1:57 AM
  • Thanks for reply, the reason I am trying to do everything in code is because of problems in designer when using my high resolution display laptop.  When I have a wide form it cuts off the right side when working in designer, so for I have found that visual studio changes the display setting in designer when using a high resolution display laptop.


    Charlie Soroka

    • Marked as answer by sorokateam Friday, March 16, 2018 7:30 PM
    Friday, March 16, 2018 2:12 AM
  • Hi

    Here is your code, with the addition of a SplitContainer. Strange color choices for some controls left unchanged.

    You can adjust the .SplitterDistance as needed.

    Option Strict On
    Option Explicit On
    Public Class Form1
      Private buttonPanel As New Panel
      Private WithEvents dgv As New DataGridView
      Private WithEvents BTN_First As New Button
      Private WithEvents BTN_Previous As New Button
      Private WithEvents TB_Record As New TextBox
      Private WithEvents BTN_Next As New Button
      Private WithEvents BTN_Last As New Button
      Private WithEvents TB_Search As New TextBox
      Private WithEvents BTN_ADD As New Button
      Private WithEvents BTN_Delete As New Button
      Private WithEvents BTN_Save As New Button
      Private WithEvents BTN_Quit As New Button
      Private splt As New SplitContainer
      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    	With splt
    	  .Orientation = Orientation.Horizontal
    	  .Dock = DockStyle.Fill
    	  .SplitterDistance = 30
    	  .FixedPanel = FixedPanel.Panel1
    	  .IsSplitterFixed = True
    	End With
    	Controls.Add(splt)
    	SetupDataGridView()
    	Setup_toolbar()
    
      End Sub
      Private Sub SetupDataGridView()
    	With dgv
    	  Me.Size = New Size(750, 450)
    	  .ColumnCount = 4
    	  .Name = "Stock Quote Grid"
    
    	  '  .Dock used below so this is redundant
    	  '  .Location = New Point(8, 8)
    
    	  .AutoSizeRowsMode =
    	  DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
    	  .ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
    	  .CellBorderStyle = DataGridViewCellBorderStyle.Single
    	  .DefaultCellStyle.ForeColor = Color.Black
    	  .DefaultCellStyle.BackColor = Color.Beige
    
    	  .EnableHeadersVisualStyles = False
    
    	  With .ColumnHeadersDefaultCellStyle
    		.BackColor = Color.Yellow
    		.ForeColor = Color.Red
    		.Font = New Font(dgv.ColumnHeadersDefaultCellStyle.Font.FontFamily, 12, FontStyle.Bold)
    	  End With
    	  .DefaultCellStyle.Font = New Font(dgv.DefaultCellStyle.Font.FontFamily, 12)
    	  ' te3sting with extra large font to prove it does work!
    	  '.Columns(1).DefaultCellStyle.Font = New Font(.DefaultCellStyle.Font.FontFamily, 20, FontStyle.Bold)
    
    	  .BackgroundColor = Color.AliceBlue
    	  .GridColor = Color.Black
    	  .RowHeadersVisible = False
    	  .Columns(0).Width = 250
    	  .Columns(0).Name = "Name"
    	  .Columns(1).Name = "Date"
    
    	  ' my change for testing font size
    	  .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    
    	  ' C2 is not a Date format
    	  .Columns(1).DefaultCellStyle.Format = "dd MM yyyy" ' Format for Date
    
    	  .Columns(2).Width = 100
    	  .Columns(2).Name = "Amount"
    	  .Columns(3).Width = 75
    	  .Columns(3).Name = "ID"
    	  .SelectionMode = DataGridViewSelectionMode.FullRowSelect
    	  .MultiSelect = True
    	  .Dock = DockStyle.Fill
    
    	  'my addition just for testing
    	  .Rows.Add("freddy1", Now.AddDays(11), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(111), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(12), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(121), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(112), 1.23, 43.25)
    	  .Rows.Add("freddy1", Now.AddDays(21), 1.23, 43.25)
    	End With
      End Sub
    
      Private Sub Setup_toolbar()
    	With BTN_First ' 1
    	  .Width = 40
    	  .Text = "<<"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(10, 5)
    	End With
    	With BTN_Previous '2
    	  .Width = 35
    	  .Text = "<"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(55, 5)
    	End With
    	With TB_Record '3
    	  .Font = New Font("", 12.0, FontStyle.Regular)
    	  .Width = 65
    	  .ReadOnly = True
    	  .BackColor = Color.Wheat
    	  .Location = New Point(95, 5)
    	End With
    	With BTN_Next '4
    	  .Width = 35
    	  .Text = ">"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(165, 5)
    	End With
    	With BTN_Last '5
    	  .Width = 40
    	  .Text = ">>"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(205, 5)
    	End With
    	With TB_Search '3
    	  .Font = New Font("", 10.0, FontStyle.Regular)
    	  .Width = 100
    	  .ReadOnly = False
    	  .BackColor = Color.LightGreen
    	  .Location = New Point(255, 5)
    	End With
    	With BTN_ADD '6
    	  .Width = 70
    	  .Text = "ADD"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(395, 5)
    	End With
    	With BTN_Delete '7
    	  .Width = 85
    	  .Text = "DELETE"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(470, 5)
    	End With
    	With BTN_Save '8
    	  .Width = 75
    	  .Text = "SAVE"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(560, 5)
    	End With
    	With BTN_Quit '9
    	  .Width = 70
    	  .Text = "Quit"
    	  .BackColor = Color.LightSkyBlue
    	  .Location = New Point(640, 5)
    	End With
    	With buttonPanel
    	  .Controls.Add(BTN_First)
    	  .Controls.Add(BTN_Previous)
    	  .Controls.Add(TB_Record)
    	  .Controls.Add(BTN_Next)
    	  .Controls.Add(BTN_Last)
    	  .Controls.Add(TB_Search)
    	  .Controls.Add(BTN_ADD)
    	  .Controls.Add(BTN_Delete)
    	  .Controls.Add(BTN_Save)
    	  .Controls.Add(BTN_Quit)
    	  .Height = 30
    	  .Dock = DockStyle.Top
    	End With
    	splt.Panel1.Controls.Add(buttonPanel)
    	splt.Panel2.Controls.Add(dgv)
      End Sub
    End Class


    Regards Les, Livingston, Scotland


    • Edited by leshay Friday, March 16, 2018 1:30 PM
    • Marked as answer by sorokateam Friday, March 16, 2018 7:31 PM
    Friday, March 16, 2018 11:11 AM
  • Thank you, it works great with the addition of a SplitContainer. Fantastic Code

    Charlie Soroka

    • Marked as answer by sorokateam Friday, March 16, 2018 7:31 PM
    Friday, March 16, 2018 3:38 PM