سؤال

لديّ Toolstrip مع عنصر تحكم ToolStripCombobox عليه ، وأود أن يتم تلقائيًا لتناسب أوسع عنصر في القائمة المنسدلة. كيف يمكنني إنجاز ذلك؟ تم تعيين خاصية "Autosize" على "True" ، ولكن لا يبدو أنها تحدث أي فرق. لقد كنت أضرب رأسي على هذا لفترة من الوقت. هل هذا ممكن؟

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

المحلول

وفقا لمقالة MSDN هذه نظرة عامة على الممتلكات التلقائية بعض الضوابط فقط تدعم خاصية Autosize. Combobox ليس لديه دعم Autosize.

نصائح أخرى

كان لي نفس المشكلة. كان الحل الخاص بي هو تعديل الحجم في الحدث المنسدلة. يمكنك تمرير عرض الحد الأقصى في القياس ، أو Maxwidth Clamp Yourself قبل تعيين عرض الأسطول.

private void m_comboBox_DropDown(object sender, EventArgs e)
{
    using (System.Drawing.Graphics graphics = CreateGraphics())
    {
        int maxWidth = 0;
        foreach (object obj in m_comboBox.Items)
        {
            System.Drawing.SizeF area = graphics.MeasureString(obj.ToString(), m_comboBox.Font);
            maxWidth = Math.Max((int)area.Width, maxWidth);
        }
        m_comboBox.DropDownWidth = maxWidth;
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top