14. februar 2009 - 14:32Der er
4 kommentarer og 1 løsning
En popup control
Jeg er ved at lave en control der virker lidt som en dropdown-boks. Den skal fungere på den måde at der er en knap som eksempeltvis er 100x20 px. Når man trykker på knappen kommer der en liste der skal kunne nogle specielle ting. Denne liste skal ligge ovenpå andre controls og derfor har jeg 2 løsningsmuligheder, der hver har deres problemer.
Løsning 1.: Jeg laver en dynamisk control som jeg lægger ind på knappens parent og som lægger sig oven på alt andet. problem: Den bliver klippet af parent control'en og applikations-vinduet. Jeg vil gerne have at denne liste kan gå udover applikationens rammer.
Løsning 2.: Jeg laver et vindue uden borders og benytter det i stedet. Problem : Dette vindue tager fokus fra parent vinduet, så det ses i top-bjælken og ved at man skal klikke 2 gange på parent for eksempelvis at lukke hele applikationen.
Jeg vil meget gerne have den til at virke som de store dropdown-galleries i MS' ribbon-bar'en.
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Dette er sikkert ikke den bedste løsning, og helt sikkert ikke den korrekte, men den virker.
Opret et nyt "Windows Forms" projekt. Tilføj en "Label" et sted i formen, og deaktiver "AutoSize".
Indsæt følgende i baggrundskoden til formen:
public partial class Form1 : Form { public Form1() { InitializeComponent(); Button b = new Button(); b.Text = "Hej"; b.Click += new EventHandler(b_Click); b.Name = "button1"; b.CreateControl(); label1.Controls.Add(b);
ComboBox cb = new ComboBox(); cb.Items.Add("1"); cb.Items.Add("2"); cb.Visible = false; cb.SelectedIndexChanged += new EventHandler(cb_SelectedIndexChanged); cb.Name = "comboBox1"; cb.CreateControl(); label1.Controls.Add(cb);
Det der sker her, er at den knap du trykker på, bliver skiftet ud med en ComboBox, hvorfra du så kan vælge hvad du nu har behov for.
Jeg tror dog at jeg har misforstået dig i første omgang, og det du egentlig ønsker er et menusystem. Jeg vender tilbage senere i dag med et eksempel herpå.
Joh, egentlig ikke blot et menusystem.. Det mest optimale ville være et panel der kan poppe op ovenpå applikationen, ligesom hvis man åbner et border-løst vindue. Grunden til at jeg ikke bare bruger en borderløs form, er fordi den tager fokus fra parent'en, så dennes border bliver grå og man skal trykke 2 gange på den for at aktivere komponenter på parent-formen.
Jeg fandt aldrig en løsning på dette specifikke problem, men løste det med en helt anden type komponent.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.