2017-05-09 5 views
2

Ich verwende GTK # (Newbie) auf Xamarin Studio Community Version 6.3, unter Windows. Kürzlich habe ich versucht, eine Total Commander Anwendung zu erstellen. Bei der Konstruktion, verwendete ich den File Chooser Widget und fand einige Problem, das ich nicht lösen kann:Funktionen und Ereignisse in FileChooserWidget GTK #

1- Wenn ich auf einen Ordner, in Orte Feld klicken, ein paar Tasten angezeigt: \<icon button with a pen and a paper>enter image description here. Wenn ich auf Icon Button klicke, erscheint . Allerdings weiß ich nicht, wie das Eintrag verwenden wie ein Ordner öffnen, Ordnerpfad auf Location entry zeigen oder geben Sie Ordnerpfad, Ordner auf das Widget öffnen. Meine temporäre Lösung ist, einen Eintrag erstellen:

FileChooserWidget fcw1 = new global::Gtk.FileChooserWidget(((global::Gtk.FileChooserAction)(0))); 
Entry e1 = new Entry(); 

e1.Text = fcw1.CurrentFolder; 

Ich hoffe, den Weg zu finden, sie zu erfassen, dass Location Entry und verwenden.

2- Auf dem Arbeitsplatz habe ich ein Problem beim Öffnen einer Datei mit Doppelklick Ereignis. Mein Code:

[GLib.ConnectBefore]  
protected void OnFcw1ButtonPressEvent(object o, ButtonPressEventArgs args) 
     { 
      if (((Gdk.EventButton)args.Event).Type == Gdk.EventType.TwoButtonPress) 
       { 
        entry1.Text = fcw1.Filename; 
        if (File.Exists(fcw1.Filename)) 
         Process.Start(fcw1.Filename); 
       } 
     } 

3- Das gleiche Problem der Verwendung der Search finden und Recently Used dass nicht den Suchprozess Das Programm war nicht in der Lage starten kann eine Verbindung mit dem Indexer-Daemon zu erstellen. Bitte stellen Sie sicher, dass es läuft.

Bitte helfen Sie mir, die Lösung zu finden und mir beizubringen, wie Sie den Namen all dieser Widgets finden. Vielen Dank!

Antwort

1

Um auf Nummer 1 zu antworten, gibt es eine Action-Eigenschaft im FileChooser-Widget, die es Ihnen erlaubt, es so einzurichten, wie Sie es wollen (Öffnen, Erstellen, Ordner auswählen). Das Feld Standort enthält den Dateinamen (den Sie beim Durchsuchen auswählen oder beim Erstellen einer neuen Datei eingeben können).

Bei # 2 ist das Standardverhalten für Doppelklicks auf FCW das Drill-Through für Ordner und die Auswahl von Dateien. Da Sie ein Glib.ConnectBefore-Attribut haben, wird Ihr Event-Handler vor dem Standard-Handler ausgeführt. Vielleicht hängt jedes Problem, das Sie in # 2 haben, mit den Handlern zusammen?

Auf # 3 klingt wie ein Problem auf Ihrem Computer dev. Mit dem FCW können Sie das Dateisystem durchsuchen, solange es eine Verbindung zum Daemon herstellen kann, so dass es so aussieht, als ob es nicht läuft. Unter Windows, Mac OSX, Ubuntu oder RHEL hatte ich damit auf anderen Rechnern kein Problem.

+0

Vielen Dank für Ihre Antwort, ich habe immer noch viele Probleme mit diesem Zeug zu arbeiten. Bis jetzt habe ich herausgefunden, wie man Problem # 2 löst, indem ich das 'FileActivated()' Signal benutze. Auf der anderen Seite sind # 1 und # 3 immer noch große Fragen. Ich hatte die Idee, sie zu überschreiben, aber das 'filechooserwidget' wurde von einem Haufen Widgets erstellt und ich habe immer noch keinen Weg gefunden, es zu tun! –