ways Skrevet 21. mars 2006 Del Skrevet 21. mars 2006 har problemer med en test jeg lager i C# under mono. bruker gtk og glade. problemet er at når man klikker på en knapp, så sendes eventet to ganger. to openfile-dialoger kommer opp. hvorfor?? kan legge opp glade-fila også, om det hjelper noe. alt den gjør er å definere utseende, og sende Click-event på knappen. // project created on 3/8/2006 at 9:05 PM using System; using Gtk; using Glade; using GLib; public class GladeApp { [Widget]Window frmMain; [Widget]Gtk.FileChooserDialog dialog; [Widget]Button btnSource; [Widget]Button btnTarget; [Widget]Entry txtSource; [Widget]Entry txtTarget; public static void Main (string[] args) { try { new GladeApp (args); } catch (Glade.HandlerNotFoundException err) { Console.WriteLine("err: " + err.Message); } } public GladeApp (string[] args) { Application.Init (); Glade.XML gxml = new Glade.XML (null, "gui.glade", "frmMain", null); gxml.Autoconnect (this); //events frmMain.DeleteEvent+=new DeleteEventHandler(OnWindowDeleteEvent); btnSource.Clicked+=new EventHandler(on_btnSource_clicked); btnTarget.Clicked+=new EventHandler(on_btnTarget_clicked); Application.Run (); } private void OnWindowDeleteEvent (object sender, DeleteEventArgs a) { Application.Quit (); a.RetVal = true; } private void on_btnSource_clicked (object sender, EventArgs a) { dialog = new FileChooserDialog ("Please choose a folder", this.frmMain, FileChooserAction.SelectFolder, Stock.Cancel, ResponseType.Cancel, Stock.Open, ResponseType.Ok); //events dialog.ButtonReleaseEvent+= new ButtonReleaseEventHandler(on_filechooserSource_response); dialog.Show(); Console.WriteLine("filechooser loaded"); } private void on_btnTarget_clicked (object sender, EventArgs a) { dialog = new FileChooserDialog ("Please choose a folder", this.frmMain, FileChooserAction.SelectFolder, Stock.Cancel, ResponseType.Cancel, Stock.Open, ResponseType.Ok); //events dialog.ButtonReleaseEvent+= new ButtonReleaseEventHandler(on_filechooserTarget_response); dialog.Show(); Console.WriteLine("filechooser loaded"); } private void on_filechooserSource_response (object sender, EventArgs a) { Console.WriteLine("response "+ ((Gtk.FileChooserDialog)(sender)).Filename.ToString() ); txtSource.Text = ((Gtk.FileChooserDialog)(sender)).Filename.ToString(); dialog.Hide(); } private void on_filechooserTarget_response (object sender, EventArgs a) { Console.WriteLine("response "+ ((Gtk.FileChooserDialog)(sender)).Filename.ToString() ); txtTarget.Text = ((Gtk.FileChooserDialog)(sender)).Filename.ToString(); dialog.Hide(); } } Lenke til kommentar https://www.diskusjon.no/topic/553919-c-dobbel-respons-p%C3%A5-eventer-cgladegtkmono/
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå