Eto.TreeGridView - Keyboard Cell Focus

I can use SelectedItem to have the specific node/row selected but the keyboard focus always defaults to first cell in TreeGridView.

Is there a way to focus on specific cell on TreeGridView init?

I need this for a custom GetLayer dialog. I plan to add more functionality to it. This is the screencap of what happens when I run the script:

I would like to have the keyboard focus on the SelectedItem row. Any ideas?

import Rhino
import rhinoscriptsyntax as rs
import System
import Eto.Drawing as drawing
import Eto.Forms as forms

class GetLayer(forms.Dialog[bool]):
    # Dialog box Class initializer
    def __init__(self, title="Select Layer", default="Plans::Text", height = 600):

        def Swatch(color=(250,200,100), width = 10, height = 10):
            bitmap = drawing.Bitmap(10, 10, drawing.PixelFormat.Format32bppRgb)
            col = drawing.Color.FromArgb(color[0], color[1], color[2])
            for x in range(1, width - 1):
                for y in range(1, height - 1):
                    bitmap.SetPixel(x, y, col)
            return bitmap

        def GetCrumbs(path):
            crumbs = path.split('::')
            layers = []; merged = ''
            for i, crumb in enumerate(crumbs):
                merged += ('::' if i else '') + crumb
                layers.append(merged)
            return layers

        # Initialize dialog box
        self.title = (title if len(title) <= 52 else title[:52] + ' ...')
        self.default = default
        self.Size = drawing.Size(300, height)

        dpi = self.LogicalPixelSize
        curx = System.Windows.Forms.Cursor.Position.X
        cury = System.Windows.Forms.Cursor.Position.Y
        x = (curx - 150 * dpi) / dpi
        y = ((cury - height * dpi) / dpi if cury > height else 0)

        self.Location = drawing.Point(x, y)
        self.WindowStyle= forms.WindowStyle.None
        self.BackgroundColor = drawing.Color(0.2,0.2,0.2,1)

        # Create controls for the dialog
        self.labelTitle = forms.Label(Text = '  ' + self.title)
        self.labelTitle.TextColor = drawing.Color(1,1,1,1)

        self.filterbox = forms.TextBox(Text = self.default)
        self.filterbox.Size = drawing.Size(250,-1)

        # Create TreeGridView
        self.tree = forms.TreeGridView()
        self.tree.Size = drawing.Size(-1, height - 40)
        self.tree.SelectedItemChanged += self.EchoCurrent
        self.tree.Border = forms.BorderType.Line
        self.tree.ShowHeader = False

        self.tree.AllowColumnReordering = False
        self.tree.GridLines = forms.GridLines.Horizontal
        self.tree.KeyDown += self.OnKey

        layColumn = forms.GridColumn()
        layColumn.Editable = False
        layColumn.HeaderText = 'Name'; layColumn.Resizable = False
        layColumn.Width = 240
        layColumn.DataCell = forms.TextBoxCell(0)

        patColumn = forms.GridColumn()
        patColumn.Editable = False
        patColumn.HeaderText = 'Full Path'; patColumn.Visible = False
        patColumn.DataCell = forms.TextBoxCell(1)

        self.colColumn = forms.GridColumn()
        self.colColumn.Editable = False
        self.colColumn.HeaderText = 'Color'; self.colColumn.Resizable = False
        self.colColumn.Width = 40
        self.colColumn.DataCell = forms.ImageViewCell(2)

        self.tree.Columns.Add(layColumn)
        self.tree.Columns.Add(patColumn)
        self.tree.Columns.Add(self.colColumn)

        # Create Tree Nodes
        treecollection = forms.TreeGridItemCollection()
        layers = rs.LayerNames()
        nodes = []; levels = 0

        if layers:
            for layer in layers: # Create color swatches and store layer properties
                level = len(layer.split('::'))
                if level > levels: levels = level
                expanded = rs.IsLayerExpanded(layer)
                color = rs.LayerColor(layer)
                item = forms.TreeGridItem(Values=(layer.split('::')[-1], layer, Swatch(color)))

                if layer in GetCrumbs(self.default[:-1]): # Expand default layer nodes before selecting
                    item.Expanded = True
                else:
                    item.Expanded = expanded
                if layer == self.default: # Select default layer node
                    self.tree.SelectedItem = item
                nodes.append((level, layer, expanded, item))

            for level in range(1, levels + 1): # Arrange layer nodes in hierarchy
                for node in nodes:
                    if node[0] == level:
                        parent = rs.ParentLayer(node[1])
                        if parent: # Add as a child node
                            for ld in nodes:
                                if parent == ld[1]:
                                    ld[3].Children.Add(node[3])
                        else: # Add as top level node
                            treecollection.Add(node[3])
        self.tree.DataStore = treecollection

        # Create the default button
        self.DefaultButton = forms.Button(Text = 'OK')
        self.DefaultButton.Click += self.OnOKButtonClick

        # Create the abort button
        self.AbortButton = forms.Button(Text = 'Cancel')
        self.AbortButton.Click += self.OnCloseButtonClick

        # Create a table layout and add all the controls
        layout = forms.DynamicLayout()
        layout.AddRow(self.labelTitle)
        layout.AddRow(self.tree)
        layout.AddSeparateRow(self.filterbox, self.DefaultButton)

        self.Content = layout
        self.ShowModal()

    def EchoCurrent(self, sender, e):
        self.filterbox.Text = self.tree.SelectedItem.GetValue(1)

    # Get selected value
    def Layer(self):
        return self.filterbox.Text

    # Close button click handler
    def OnCloseButtonClick(self, sender, e):
        self.filterbox.Text = self.default
        self.Close(False)

    # Keyboard Handler
    def OnKey(self, sender, e):
        if e.Key == forms.Keys.Enter:
            self.Close(False)
        elif e.Key == forms.Keys.Right:
            sender.SelectedItem.Expanded = True
            sender.ReloadData()
        elif e.Key == forms.Keys.Left:
            sender.SelectedItem.Expanded = False
            sender.ReloadData()

    # OK button click handler
    def OnOKButtonClick(self, sender, e):
        self.Close(True)


print GetLayer().Layer()