[ Valerij Zajcev @ 01.03.2009. 17:21 ] @
Imam jedan textBox na WinForm i hocu da kada stavim misa na njega da se izvrsi jedna konekcija na bazu da pokupi podatke i prikaze u ToolTip-u :)
E sada ja sam koristio 'txt***_MouseHover' Event za ovo i kada stavim kursor na textbox izvsi se skupljanje podataka iz baze i prikaze ih u ToolTip-u to je ok.
Problem je sto se ovaj Event izvrsava sve vreme dok mi je kursor na textBox-u, a to mi smeta zbog performansi aplikacije, kako mogu da se osiguram da ce ovaj event da se izvrsi samo jednom, a ne sve vreme dok je cursor ne kontroli?
[ sallle @ 01.03.2009. 20:24 ] @
prvi put preuzmi podatke, svaki sledeci put, preskoci:

if (!preuzeto)
{
akcija;
preuzeto = true;
}

preuzeto postavi na false kad hoces da osvezis...


ne znam kakva ti je logika, al konceptualno mozda mozes da razmisljas i o singleton-u za taj string
[ Valerij Zajcev @ 01.03.2009. 21:35 ] @
Pa tako nekako sam i razmisljao, ali ako tako stavim ono ce jednom da prikaze a onda vise nece nikad :(, a ja to necu. Mnogo cudan event :)
Code:

private void txtOid_MouseHover(object sender, EventArgs e)
        {
           
            string sqlQuery = "SELECT dbo_OrgDetails.Site, dbo_OrgDetails.Name, dbo_OrgDetails.Profile, dbo_OrgDetails.Adresa, dbo_OrgDetails.Phone, dbo_OrgDetails.Fax, dbo_OrgDetails.Country FROM dbo_OrgDetails INNER JOIN dbo_UserDetails ON dbo_OrgDetails.Oid = dbo_UserDetails.Oid WHERE dbo_OrgDetails.Oid = '" + txtOid.Text + "'";
            string nazivComp = "";
            string sajtComp = "";
            string Profile = "";
            string Adresa = "";
            string Phone = "";
            string Fax = "";
            string Country = "";
            

            using (IDataReader dr = m_Db.ExecuteReader(CommandType.Text, sqlQuery))
            {
                while (dr.Read())
                {
                    try
                    {                       
                        nazivComp = dr.GetString(dr.GetOrdinal("Name"));
                        sajtComp = dr.GetString(dr.GetOrdinal("Site"));
                        Profile = dr.GetString(dr.GetOrdinal("Profile"));
                        Adresa = dr.GetString(dr.GetOrdinal("Adresa"));
                        Phone = dr.GetString(dr.GetOrdinal("Phone"));
                        Fax = dr.GetString(dr.GetOrdinal("Fax"));
                        Country = dr.GetString(dr.GetOrdinal("Country"));                       
                    }
                    catch (Exception)
                    {

                    }
                    txtToolTip.BackColor = Color.White;
                  
                    txtToolTip.SetToolTip(txtOid, nazivComp + "\n" + sajtComp + "\n" + Profile + "\n" + Adresa + "\n" + Phone + "\n" + Fax + "\n" + Country);
                     nazivComp = "";
                     sajtComp = "";
                     Profile = "";
                     Adresa = "";
                     Phone = "";
                     Fax = "";
                     Country = "";
                    
                }
            }
        }
[ marko1981 @ 01.03.2009. 22:00 ] @
Da li si probao da umesto MouseHover koristiš MouseEnter event?
[ Igor Gajic @ 01.03.2009. 22:37 ] @
A jesi ti siguran da ti se stalno izvrsava MouseHover dogadjaj ?

Probao sam da u aplikaciji dodam prost dogadjaj:

Code:

        private void textBox1_MouseHover(object sender, EventArgs e)
        {
            toolTip1.SetToolTip((Control)sender, DateTime.Now.ToString());
            label2.Text = DateTime.Now.ToString();
        }



Dakle text box i label, za textBox postavljam toolTip, a label2 mi sluzi cisto kao kontrola da li se ovaj dogadjaj izvrsava 2+ puta.

I uvek mi javlja da se dogadjaj izvrsio jednom po ulasku misa u kontrolu, drugi put se izvrsi tek kada izadjem misem iz kontrole i ponovo udjem u kontrolu.
[ Valerij Zajcev @ 02.03.2009. 07:29 ] @
Citat:
Igor Gajic: A jesi ti siguran da ti se stalno izvrsava MouseHover dogadjaj ?

Probao sam da u aplikaciji dodam prost dogadjaj:

Code:

        private void textBox1_MouseHover(object sender, EventArgs e)
        {
            toolTip1.SetToolTip((Control)sender, DateTime.Now.ToString());
            label2.Text = DateTime.Now.ToString();
        }



Dakle text box i label, za textBox postavljam toolTip, a label2 mi sluzi cisto kao kontrola da li se ovaj dogadjaj izvrsava 2+ puta.

I uvek mi javlja da se dogadjaj izvrsio jednom po ulasku misa u kontrolu, drugi put se izvrsi tek kada izadjem misem iz kontrole i ponovo udjem u kontrolu.

Izgleda da si u pravu :), zbunio me je debuger jer kada sam ga pustio ono se izvrsi jednom ali fora je sto mi se nakon debuga ponovo otvori debug jer je mis ostao na istom mestu :), izvrsava se samo jednom, izvinite na smetnji ;(
Hvala