c# - How to show a picture box inside a panel on hover programmatically? -


i have following problem, because quite new don't know if asking right questions...hope can put me in right direction, in advance.

i have panel. inside there textbox(same size panel(140*40) , picturebox(smaller , in right top corner, 15*15).at moment able when mousehover panel(and textbox) show picturebox image deleting in it. if pass mouse on picturebox himself dissapears, , want happens when mouseleave textbox or panel.

a college told me must use parent property, have no idea how can that.

i don't know if explanation good, leave code here, can point me solution.

textbox tbrole, panel pnrole , picturebox pbdeletex:

tbrole.mousemove += (senderl, el) =>         {             if (mousehover)             {                 pbdeletex.visible = true;                 mousehover = true;             }             else             {                 pbdeletex.visible = true;                 mousehover = false;             }                   tbrole.backcolor = color.aliceblue;             pnrole.backcolor = color.aliceblue;             // je dois mettre ici le dodragdrop parce que sinon sa ne marche pas le doubleclick             if (el.button == mousebuttons.left)             {                 idroleg = idrolel;                 tbrole.bringtofront();                 clrol = tbrole.backcolor;                 mousedown = true;                 tbrole.allowdrop = true;                  tbrole.dodragdrop(tbrole, dragdropeffects.move);             }          };                     tbrole.mousehover += (senderl, el) =>         {             if (mousehover)             {                 pbdeletex.visible = true;                 mousehover = false;             }             else             {                 pbdeletex.visible = false;                 mousehover = false;             }             tbrole.backcolor = pnrole.backcolor = color.aliceblue;         };                     tbrole.mouseleave += (senderl, el) =>         {             pnrole.backcolor = color.bisque;             tbrole.backcolor = color.bisque;             if (mousehover)             {                 pbdeletex.visible = true;                 mousehover = false;             }             else             {                 pbdeletex.visible = false;                 mousehover = true;              }          };  

i think happens because when hover mouse cursor on picturebox, tbrole.mouseleave fired. can check using breakpoint , see if happens actually. can code 2 boolean variablesfor instance can say:

tbrole.mouseleave += (senderl, el) =>      {         booltext == false;          if(booltext == false && boolpic == false) {             pnrole.backcolor = color.bisque;             tbrole.backcolor = color.bisque;             pbdeletex.visible = false;         }      }; 

this happens:

  1. hover cursor on textbox. booltext == true , boolpic == false
  2. hover cursor on pic. booltext == false , boolpic == true. mouseleave not fired
  3. leave picbox. booltext == true , boolpic == false
  4. leave textbox. booltext == false , booltext == false. mouseleave fires , picbox disappears.

so, have add code of mousehover , mouseleave of picturebox , global variable boolpic == true if mousehover fired , boolpic == false when mouseleave fired. add same logic in mousehover , mouseleave of textbox. hope should work. :p


Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -