2017-05-09 9 views
2

J'utilise GTK # (débutant) sur Xamarin Studio Community version 6.3, sous Windows. Récemment, j'essayais de construire une application Total Commander. Lors de la construction, je l'File Chooser Widget et a trouvé une question que je ne peux pas résoudre:Fonctionnalités et événements dans FileChooserWidget GTK #

1- Lorsque je clique sur un dossier dans la boîte Lieux, quelques boutons apparaissent: \<icon button with a pen and a paper>enter image description here. Quand je clique sur le Icon Button, apparaîtra. Cependant, je ne sais pas comment utiliser cette entrée comme l'ouverture d'un dossier , chemin dossier affichera sur Location entry ou entrez chemin du dossier, dossier ouvrira sur le widget. Ma solution temporaire est de créer une entrée:

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

e1.Text = fcw1.CurrentFolder; 

J'espère trouver le moyen de capturer cette Location Entry et de l'utiliser.

2- Sur le lieu de travail, j'ai un problème pour ouvrir un fichier en utilisant un double-clic. Mon 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- Le même problème de trouver l'utilisation du Search et Recently Used que Impossible de démarrer le processus de recherche Le programme n'a pas été en mesure de créer une connexion au démon indexeur. S'il vous plaît assurez-vous qu'il fonctionne.

S'il vous plaît aidez-moi à trouver la solution et apprenez-moi comment trouver le nom de tous ces widgets. Merci beaucoup!

Répondre

1

Pour répondre # 1 il y a une propriété Action sur le widget FileChooser qui vous permettra de le configurer pour ce que vous voulez faire (Ouvrir, Créer, Sélectionner un dossier, etc). Le champ Emplacement contient le nom de fichier (que vous sélectionnez lors de la navigation ou peut taper si vous créez un nouveau fichier). Sur le n ° 2, le comportement par défaut pour les doubles-clics sur FCW consiste à explorer les dossiers et à sélectionner les fichiers. Étant donné que vous avez un attribut Glib.ConnectBefore, votre gestionnaire d'événements s'exécutera avant le gestionnaire par défaut. Peut-être que le problème que vous avez dans # 2 est lié aux gestionnaires?

Le # 3 sonne comme un problème sur votre machine dev. Le FCW vous permet de rechercher dans le système de fichiers tant qu'il peut se connecter au démon pour qu'il ne fonctionne pas. Je n'ai pas eu de problème avec Windows, Mac OSX, Ubuntu ou RHEL sur d'autres machines.

+0

Merci beaucoup pour votre réponse, j'ai encore beaucoup de problèmes à travailler avec ce genre de choses. Jusqu'à présent, j'ai trouvé comment résoudre le problème # 2 en utilisant le signal 'FileActivated()'. D'un autre côté, les # 1 et # 3 sont encore de grosses questions. J'ai eu l'idée de les "ignorer" mais le "filechooserwidget" a été créé par un tas de widgets et je n'ai toujours pas trouvé le moyen de le faire! –