#if wxUSE_FILECTRL
 
-#include "wx/panel.h"
+#include "wx/containr.h"
 #include "wx/listctrl.h"
 #include "wx/filectrl.h"
 #include "wx/filename.h"
     DECLARE_EVENT_TABLE()
 };
 
-class WXDLLIMPEXP_CORE wxGenericFileCtrl : public wxPanel,
+class WXDLLIMPEXP_CORE wxGenericFileCtrl : public wxNavigationEnabled<wxControl>,
                                            public wxFileCtrlBase
 {
 public:
 
 // wxGenericFileCtrl implementation
 ///////////////////////////////////////////////////////////////////////////////
 
-IMPLEMENT_DYNAMIC_CLASS( wxGenericFileCtrl, wxPanel )
+IMPLEMENT_DYNAMIC_CLASS( wxGenericFileCtrl, wxNavigationEnabled<wxControl> )
 
-BEGIN_EVENT_TABLE( wxGenericFileCtrl, wxPanel )
+BEGIN_EVENT_TABLE( wxGenericFileCtrl, wxNavigationEnabled<wxControl> )
     EVT_LIST_ITEM_SELECTED( ID_FILELIST_CTRL, wxGenericFileCtrl::OnSelected )
     EVT_LIST_ITEM_ACTIVATED( ID_FILELIST_CTRL, wxGenericFileCtrl::OnActivated )
     EVT_CHOICE( ID_CHOICE, wxGenericFileCtrl::OnChoiceFilter )
     wxASSERT_MSG( !( ( m_style & wxFC_SAVE ) && ( m_style & wxFC_MULTIPLE ) ),
                   wxT( "wxFC_MULTIPLE can't be used with wxFC_SAVE" ) );
 
-    wxPanel::Create( parent, id, pos, size, wxTAB_TRAVERSAL, name );
+    wxNavigationEnabled<wxControl>::Create( parent, id,
+                                            pos, size,
+                                            wxTAB_TRAVERSAL,
+                                            wxDefaultValidator,
+                                            name );
 
     m_dir = defaultDirectory;