Domanda

Questo è un follow-up per la mia domanda precedente "Font-dipendente di controllo di posizionamento."È un tentativo di risolvere il reale problema che si cela dietro a quella domanda, forse in modi diversi rispetto a quello che stavo chiedendo.

Esempio di problema economico: Voglio una casella di controllo che dice "Regolare i prezzi <X> <Y> dopo il caricamento," dove <X> è un numero---regolabili con NumericUpDown---e <Y> è la "percentuale" o "dollari", con le scelte da parte di un ComboBox.Questo sarà su una singola linea.

La complicazione: Voglio essere in grado di cambiare il mio font per tutti questi controlli (in pratica li per System.Drawing.Fonts.MessageBoxFont, che è Tahoma 8 pt su Windows XP/etc.e Segoe UI 9 pt su Vista), senza rovinare il mio layout, che con il mio attuale Position-proprietà--definizione di paradigma non funziona.

Più in generale, mi piacerebbe che i controlli dinamicamente disposti in un carattere indipendente, in modo che il <X> NumericUpDown si adatta perfettamente nello spazio tra "di" e il <Y> ComboBox, e allo stesso modo il <X> ComboBox in sintonia con il rispetto per l' <X> CheckBox e la stringa "dopo il caricamento" alla sua destra.

Parte tutto sembra perdere: Questo è nidificato all'interno di una CheckBox.Così, idealmente, cliccando sulle parole "dopo il caricamento" dovrebbe selezionare/deselezionare la casella di controllo, e disegnare quel piccolo rettangolo di evidenziazione di tutto "Regolare i prezzi dopo il caricamento." Quindi basta schiaffi un extra Label alla fine non funziona, perchè allora non passare il CheckBox;allo stesso modo, cercando di band-aid cose da collegare ad un Label's Click evento non produrre il desiderato evidenziare-rettangolo.

Soluzioni? A questo punto sto pensando che sia:

  1. Ripensare il problema, in qualche modo, magari con una brutta soluzione, come due linee separate di testo:"Regolare trovato i prezzi dopo il caricamento" (CheckBox), "Regolazione quantità:" (NumericUpDown e ComboBox).Questo è davvero male, perché la mia casella delle opzioni è assolutamente pieno di opzioni di questo tipo (es.il tipo nell'esempio), quindi sarebbe almeno il doppio in dimensioni verticali.

  2. Una sorta di controllo personalizzato? SplittableCheckBox?

  3. Un qualche tipo di magia con un TableLayout di controllo?(Certo che questo non riesce a "parte tutto sembra perdere.)

  4. Rinunciare e tornare a MS Sans Serif, o utilizzare Tahoma uniformemente, o di un pacchetto Segoe UI con la mia domanda, quindi, mancare di rispetto il sistema di font di default.

  5. (Nuovo, in via di modifica) Interruttore a WPF, se qualcuno mi convince che supporta questo scenario esattamente.

È stato utile?

Soluzione

Se si dispone di diverse opzioni che seguono questo layout, perché non creare un controllo utente?Il controllo utente contiene la Casella di controllo, una NumericUpDown, una ComboBox e un'etichetta per il "dopo di caricamento".È possibile eseguire l'override OnFontChanged per regolare la posizione dei controlli basati sulla rappresentazione del testo con il font.Aggiungi un EventHandler per l'Etichetta per selezionare/deselezionare la Casella di controllo.

Come per avere il rettangolo circondano tutti i controlli, si dovrebbe essere in grado di dare all'utente il controllo di messa a fuoco durante uno dei suoi controlli interni è cliccato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top