Custom Paint

Pozdravljeni,

v projektu, ki ga razvijamo, zelimo omogociti urejanje oken, s katerim bi uporabniki sami lahko razvrstili kontrole po formi. Vecina kontrol se obnasa "spodobno", probleme povzrocata predvsem TextBox in ComboBox, saj uporabnik s klikom na kontrolo dobi caret. TextBox sicer lahko nastavimo na ReadOnly, da ne more pisat, ampak caret ostane. Kontrole ne morem onemogocit, ker potem ne dobim nobenih dogodkov. WM_LBUTTONDOWN ne morem speljat mimo base.WndProc, ker potem spet ne dobim naslednjih dogodkov. Skratka, videti je, da bo potrebno povoziti Paint metodo in kontrole narisati...

Za to sicer obstaja lustna rec, imenovana ControlPaint, ki zna nekaj pocet, vendar se (za moje pojme) ne ozira prevec na sistemske nastavitve (teme), zato me zanima, ali obstaja nacin, s katerim bi lahko narisal kontrolo as-is pri trenutno izbrani temi.

 
Za vaso pomoc/mnenja se vam ze vnaprej zahvaljujem!

lp,

Gregor

 

Avtor: lemmy, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

lemmy
lemmy - četrtek, 29. marec 2007

V resnici imamo spisano kar svoje metode, ki premikajo/resizajo kontrole. Ce mi uspe primer na gornjem linku usposobit, potem bom pogledal, kako deluje. Skratka, premikanje je povsem enako za vse objekte na formi. Problem je le, da sta textbox in combo "input" objekta, ki pac zacneta utripat.Drugace sem pa nasel razrede System.Windows.Forms.*Renderer, ki uporabljajo trenutno temo in risejo kontrole. Zal se vedno ne vem, kako je lahko privzeti textbox malcek drugacen od tega, ampak bolje nekaj kot nic. Je pa seveda problem, ker lahko uporabnik nima teme (standard win izgled); v tem primeru tile razredeki odpovedo. lp,Gregor 

spirit1
spirit1 - četrtek, 29. marec 2007

na kaksen nacin pa premikas ostale kontrole?a si uporabil tale nacin: http://www.codeproject.com/vb/net/RuntimeMovableControls.aspali kaj drugega?