Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Evento Button_click generato due volte
giovedì 07 agosto 2008 - 15.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gonzalezh
Profilo
| Junior Member
71
messaggi | Data Invio:
gio 7 ago 2008 - 15:47
Salve a tutti,
Io ho un evento Button_Click che viene generato quando l'utente fa click in un controllo Office.CommandBarButton ma mi viene generato due volte, cioè la win form si apre quando l'utente fa click sulla voce di menu e se l'utente fa click su Chiudi (oppure su Visualizza) il form si chiude e si riapre nuovamente (in tutto 3 volte anzichè 1 volta). Debuggando vedo che il flusso dell'applicazione va nuovamente ad eseguire l'evento Button_Click.
Cosa può essere successo??
Grazie in anticipo,
H.
paoval72
Profilo
| Senior Member
297
messaggi | Data Invio:
dom 10 ago 2008 - 10:29
Ciao, puoi postare un po' di codice?
PV
gonzalezh
Profilo
| Junior Member
71
messaggi | Data Invio:
lun 11 ago 2008 - 14:19
Certo!
questo è il codice del click dell'item del menu
private void Button_Click(Office.CommandBarButton Ctrl, ref bool CancelDefault)
{
try
{
if (Sintesi.tableName != Ctrl.Caption) //questo if l'ho aggiunto per evitare che venga eseguito più volte il metodo
{
tableName = Ctrl.Caption;
mySynth = new Sintesi();
mySynth.Visible = false;
mySynth.Text += " " + tableName;
Sintesi.con = GetConnectionString(Ctrl);
Sintesi.ermasDb = GetErmasDbName(Sintesi.con);
try
{
if (mySynth.ShowDialog() == DialogResult.OK)
{
(Globals.ThisAddIn.Application.ActiveSheet as Excel.Worksheet).Cells.Clear();
Globals.ThisAddIn.Application.Cursor = Microsoft.Office.Interop.Excel.XlMousePointer.xlWait;
this.Application.ScreenUpdating = false;
ExportToExcel();
(this.Application.ActiveSheet as Excel.Worksheet).Name = tableName;
}
}
finally
{
mySynth.Dispose();
this.Application.ScreenUpdating = true;
Globals.ThisAddIn.Application.Cursor = Microsoft.Office.Interop.Excel.XlMousePointer.xlDefault;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
quest'è il Load della Win Form
private void Sintesi_Load(object sender, EventArgs e)
{
tableName = Globals.ThisAddIn.tableName;
FillControls();
DataColumn dc = new DataColumn("FieldToView");
dc.DataType = System.Type.GetType("System.String");
dc.DefaultValue = "DESC";
ds.Tables[0].Columns.Add(dc);
}
private void FillControls()
{
ds = null;
SqlConnection cn = null;
string sqlExpression = " select distinct ordinal_position, column_name, data_type " +
" from information_Schema.columns " +
" where table_name = '" + tableName + "' " +
" order by ordinal_position ; " +
" SELECT INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, T_SYS_DBKEY_ANAG.DESCR, T_SYS_DBKEY_ANAG.DOMN_TYPE " +
" FROM INFORMATION_SCHEMA.COLUMNS, T_SYS_DBKEY_ANAG " +
" WHERE INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME LIKE '%' + T_SYS_DBKEY_ANAG.UCODE + '%' AND " +
" INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = '" + tableName + "'";
string sqlFiltri = "select distinct uid_pubb, uid_ses from " + tableName + " order by uid_pubb";
try
{
lstBxCampiDisponibili.Items.Clear();
lstBxCampiVisualizzare.Items.Clear();
cn = new SqlConnection(con);
ds = ReadFromDB(sqlExpression, cn);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string item = ds.Tables[0].Rows[i]["column_Name"].ToString();
lstBxCampiDisponibili.Items.Add(item);
}
this.lstBxCampiDisponibili.Update();
cn = new SqlConnection(con);
DataSet dsFiltri = ReadFromDB(sqlFiltri, cn);
cboPubb.DataSource = dsFiltri.Tables[0];
cboPubb.ValueMember = dsFiltri.Tables[0].Columns["uid_pubb"].ToString();
cboPubb.DisplayMember = dsFiltri.Tables[0].Columns["uid_pubb"].ToString();
cboSess.DataSource = dsFiltri.Tables[0];
cboSess.ValueMember = dsFiltri.Tables[0].Columns["uid_ses"].ToString();
cboSess.DisplayMember = dsFiltri.Tables[0].Columns["uid_ses"].ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !