2010-03-10 2 views
0

J'ai un combobox que j'ai activé = false. Lorsque c'est le cas, il devient gris. Je me demandais si je pouvais garder la couleur d'arrière-plan de la case à cocher en tant que cornsilk alors qu'elle n'est pas activée?Couleur d'arrière-plan Combobox non activée

La situation est que j'ai une forme que je vais rafraîchir les données lorsqu'un élément est sélectionné. Si l'utilisateur choisit de modifier l'enregistrement, j'accepte le formulaire pour accepter les changements et comme il s'agit principalement de zones de texte, je change simplement la propriété readonly de ceux-ci. Mais le combobox est différent, donc je veux voir ce que je peux faire pour faire rester le même comme le reste de la forme ...

Toutes les idées?

Répondre

0

Je le cacherais simplement avec un TextBox dessus et placerais sa propriété Visible à faux. Ensuite, vous cliquez sur le bouton Modifier, vous masquez votre TextBox et affichez votre ComboBox avec sa propriété Visible définie sur true.

Vous souhaitez peut-être mettre à jour votre propriété TextBox.Text en définissant sa valeur sur la valeur de la propriété ComboBox.SelectedItem du gestionnaire d'événements SelectedItemChanged().

Supposons que les éléments suivants:

ComboBox cb = new ComboBox(); 
// Position, size and other properties are set through design. 
cb.SelectedIndex = 0; // Forces selection of first item for demo purposes. 

TextBox tb = new TextBox(); 
tb.Size = cb.Size; 
tb.Position = cb.Position; 
tb.Text = cb.SelectedItem.ToString(); 
tb.Visible = true; 
tb.Readonly = true; 

cb.Visible = false; 

Ensuite, cliquez sur le bouton Edit:

private void EditButton_Click(...) { 
    tb.Visible = false; 
    cb.Visible = true; 
} 

et faites votre valeur de la propriété TextBox.Text suivre votre SelectedItem:

private void ComboBox_SelectedIndexChanged(...) { 
    tb.Text = cb.SelectedItem.ToString; 
} 

Et vous ne faites que l'inverse de votre gestionnaire d'événements EditButton_Click() pour ramener votre formulaire dans mode lecture seule.

0

Vous pouvez envisager d'utiliser Jquery UI ou d'autres plugins si l'esthétique de la forme est importante. Vous pouvez contrôler l'aspect entier avec le CSS.

Hiding combobox avec une zone de texte est possible comme suggéré par Will, mais alors vous devrez utiliser la largeur absolue pour le menu déroulant.

Questions connexes