سؤال

لدي Combobox الذي قمت بتمكينه = خطأ. عندما يكون هذا هو الحال، فإنه يسبب ذلك الظل إلى اللون الرمادي. كنت أتساءل عما إذا كانت هناك طريقة يمكنني الاحتفاظ بها لون خانة الاختيار كورنسيسيلك أثناء عدم تمكينه؟

الوضع هو أن لدي نموذج سوف ينعش مع البيانات عند تحديد عنصر. إذا كان المستخدم يختار تحرير السجل، فقد تمكن النموذج لقبول التغييرات وبالتالي فهو أساسا من صناديق النصر، فأنا فقط تغيير خاصية Readonly لأولئك. لكن البلاصة تبدو مختلفة لذلك أريد أن أرى ما يمكنني فعله لجعله يبقى هو نفسه مثل بقية النموذج ...

أيه أفكار؟

هل كانت مفيدة؟

المحلول

سأخفيها ببساطة مع مربع نص فوقها وتعيين خاصيةها المرئية إلى False. ثم، أنت المستخدم الخاص بك النقر فوق الزر "تحرير"، يمكنك إخفاء علبة النص الخاصة بك وإظهار جهاز تحديد المجاني الخاص بك مع تعيين خاصية مرئية إلى True.

ربما ترغب في تحديث الخاصية TextBox.TEXT عن طريق تعيين قيمة خاصية خاصية ComboBox.SelectedItim على معالج الأحداث المحددة ().

دعونا نفترض ما يلي:

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;

ثم، النقر فوق الزر "تحرير":

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

وجعل قيمة خاصية TextBox.Text متابعة SEARELESITEM:

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

وسوف تفعل فقط عكس معالج الأحداث EditButton_Click () لإعادة نموذجك في وضع القراءة فقط.

نصائح أخرى

قد تفكر في استخدام JQuery UI أو الإضافات الأخرى إذا كانت جماليات النموذج مهمة. يمكنك التحكم في الشكل الكامل والشعور مع CSS.

يختبئ Combobox مع TextBox هو احتمال كما اقترحه بالإرادة ولكن بعد ذلك سيتعين عليك استخدام العرض المطلق للمنسدلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top