|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
C# - Comandi per gestire le finestre di dialogo (form)
Qual'è il comando da associare al click su un button "ok" di una finestra di dialogo form in modo che venga chiusa la finestra e possa essere riaperta successivamente nell'esecuzione senza che venga visualizzato il messaggio che la risorsa è già occupata ?
ho provato con this.Close() ma alla successiva riapertura della finestra viene visualizzato l'errore di risorsa già occupata. Un'altra domanda...le finestre di dialogo contengono visualizzazioni di dati derivanti da una query sul db. Se un dato viene modificato, quando la finestra viene chiusa il dato sul db viene aggiornato ?
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Como
Messaggi: 708
|
Lo puoi sapere solo tu...se alla riapertura della finestra leggi i dati dal db e li visualizzi, sì. Se usi i dati estratti precedentemente e memorizzati chissà dove, no.
__________________
Cristian ,il nOUS che invoglia i5-2500 (Sandy Bridge) Quad-Core 3,30 Ghz - Asus P8Z68-V PRO / GEN3 - 2x4GB DDR3 - GeForce GTX 550 Ti Pci-E 4 Gb ddr3 - Barracuda 7200.12 1 Tb Sata 600 Buffer 32 Mb 7200 Rpm |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2002
Messaggi: 115
|
Non è che tu hai fatto apparire il form con Form.ShowDialog()? In tal caso per chiuderlo non ti basta il Form.Close(), ma ti serve anche un Form.Dispose() per liberare le risorse.
Altrimenti usa Form.Show()....
__________________
^GlobuS^ |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
Quote:
Comunque ho modificato mettendo form.Show() e da lo stesso problema...anche se uso form.dispose() per chiudere....l'errore è sempre quello che la risorsa non è stata rilasciata
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield Ultima modifica di Samb1985 : 06-08-2007 alle 12:11. |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Aug 2002
Messaggi: 115
|
immagino che tu apra delle connessioni a db etc... controlla che vengano chiuse etc... Magari se posti un po' di codice vedo meglio
__________________
^GlobuS^ |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
Visto che nella finestra in questione utilizzo le informazioni Assembly, possono essere queste a causare il problema ?
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
|
non puoi farci vedere il codice della zona incriminata?
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale. Go to a Wormhole |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Como
Messaggi: 708
|
Secondo me hai un Resultset o una connessione al db non chiusi, e provi a riaprirli.
__________________
Cristian ,il nOUS che invoglia i5-2500 (Sandy Bridge) Quad-Core 3,30 Ghz - Asus P8Z68-V PRO / GEN3 - 2x4GB DDR3 - GeForce GTX 550 Ti Pci-E 4 Gb ddr3 - Barracuda 7200.12 1 Tb Sata 600 Buffer 32 Mb 7200 Rpm |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
Questo è il codice della finestra che crea problemi.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Reflection; namespace XXXX { partial class AboutBox : Form { public AboutBox() { InitializeComponent(); // Inizializzare AboutBox per visualizzare le informazioni sul prodotto dalle informazioni dell'assembly. // Modificare le impostazioni delle informazioni dell'assembly per l'applicazione utilizzando: // - Progetto->Proprietà->Applicazione->Informazioni assembly // - AssemblyInfo.cs this.Text = String.Format("Informazioni su {0}", AssemblyTitle); this.labelProductName.Text = AssemblyProduct; this.labelVersion.Text = String.Format("Versione {0}", AssemblyVersion); this.labelCopyright.Text = AssemblyCopyright; this.labelCompanyName.Text = AssemblyCompany; this.textBoxDescription.Text = AssemblyDescription; } #region Funzioni di accesso attributo assembly public string AssemblyTitle { get { // Ottiene tutti gli attributi Title di questo assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); // Se è presente almeno un attributo Title if (attributes.Length > 0) { // Seleziona il primo AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; // Se non è una stringa vuota, lo restituisce if (titleAttribute.Title != "") return titleAttribute.Title; } // Se l'attributo Title non è presente o è costituito da una stringa vuota, restituisce il nome dell'eseguibile return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); } } public string AssemblyVersion { get { return Assembly.GetExecutingAssembly().GetName().Version.ToString(); } } public string AssemblyDescription { get { // Ottiene tutti gli attributi Description di questo assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); // Se l'attributo Description non è presente, restituisce una stringa vuota if (attributes.Length == 0) return ""; // Se l'attributo Description è presente, ne restituisce il valore return ((AssemblyDescriptionAttribute)attributes[0]).Description; } } public string AssemblyProduct { get { // Ottiene tutti gli attributi Product di questo assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); // Se l'attributo Product non è presente, restituisce una stringa vuota if (attributes.Length == 0) return ""; // Se l'attributo Product è presente, ne restituisce il valore return ((AssemblyProductAttribute)attributes[0]).Product; } } public string AssemblyCopyright { get { // Ottiene tutti gli attributi Copyright di questo assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); // Se l'attributo Copyright non è presente, restituisce una stringa vuota if (attributes.Length == 0) return ""; // Se l'attributo Copyright è presente, ne restituisce il valore return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; } } public string AssemblyCompany { get { // Ottiene tutti gli attributi Company di questo assembly object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); // Se l'attributo Company non è presente, restituisce una stringa vuota if (attributes.Length == 0) return ""; // Se l'attributo Company è presente, ne restituisce il valore return ((AssemblyCompanyAttribute)attributes[0]).Company; } } #endregion private void okButton_Click(object sender, EventArgs e) { this.Close(); // o Dispose il risultato non cambia } } }
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Aug 2002
Messaggi: 115
|
Questa parte cosi' com'è non dovrebbe dare problemi (e non ne da). Fai vedere il click o la parte di codice che istanzia e mostra il form AboutBox
__________________
^GlobuS^ |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
Quote:
questa è la parte che mostra il form: private void informazionisuToolStripMenuItem_Click(object sender, EventArgs e) { myAboutBox.Show(); } Una soluzione alternativa funzionante è usare Hide() per chiudere anche se non è corretta per il significato dell'hide...
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Aug 2002
Messaggi: 115
|
prova a fare dei check sul form myAboutBox, cose tipo :
if(myAboutBoix!=null) { if(myAboutBox.IsDisposed) myAboutBox = new AboutBox(); } else { myAboutBox = new AboutBox(); } myAboutBox.Show(); (che codice orrendo....
__________________
^GlobuS^ |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:29.












,il nOUS che invoglia








