PDA

View Full Version : راست چین کردن متن داخل ComboBox



m_karimi
یک شنبه 23 مهر 1396, 23:21 عصر
سلام
من اطلاعات داخل بانک را با دستورات
cbo_n.DisplayMember = "noe_m";
cbo_n.ValueMember = "id_noe_m";

در یک کمبوباکس ریختم منتها میخواستم وسط چین بشه نوشته های آیتم هاش.

یک سوال دیگر اینکه به وسیله combobox.text یک متن دادم به کمبوباکس. آن را هم نمیدانم جطور وسط چین کنم. چپ چین هستن.

danialafshari
دوشنبه 24 مهر 1396, 02:17 صبح
با سلام
در عنوان تاپیک نوشتید که راست چین ولی در توضیحات میگید که وسط چین! آخر کدوم؟
برای وسط چین کردن امکانی در CpmboBox مایکروسافت وجود نداره ولی با کد نویسی میتونید اینکار رو انجام بدید
ابتدا comboBox را انخاب کنید و خاصیت های زیر را تنظیم کنید


DrawMode = OwnerDrawFixed
DropDownStyle = DropDownList

برای وسط چین ابتدا event زیر رو در یک فضای خالی قرار بدید

private void cbxDesign_DrawItem(object sender, DrawItemEventArgs e)
{
ComboBox cbx = sender as ComboBox;
if (cbx != null)
{
e.DrawBackground();

if (e.Index >= 0)
{
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;

Brush brush = new SolidBrush(cbx.ForeColor);

if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
brush = SystemBrushes.HighlightText;

e.Graphics.DrawString(cbx.Items[e.Index].ToString(), cbx.Font, brush, e.Bounds, sf);
}
}
}

سپس روی object خود ComboBox کلیک کنید سپس از قسمت Event ها DrawItem رو پیدا کنید سپس فلش رو به پایینش رو بزنید و اونت بالا رو که cbxDesign_DrawItem انتخاب کنید.
البته اینم بگم که کمبوباکس جانوس بصورت پیش فرض وسط چین رو داره و بیشترین امکانات رو این کامپوننت داره برای کمبوباکس
موفق باشید

m_karimi
چهارشنبه 03 آبان 1396, 21:19 عصر
با تشکر
من با کمبوباکس devcomponent کار میکنم جواب نداد. در ضمن من داده های بعضی کمبوباکس ها را از دیتابیس پر میکنم. ایا برای این مورد هم جواب میدهد؟ یه سوال دیگه اینکه در فرم ویرایش combobox.text که میدهم این هم وسط چین نمیشود. خط زیر را هم بجای خط اول
DevComponents.DotNetBar.Controls.ComboBoxEx cbx = sender as DevComponents.DotNetBar.Controls.ComboBoxEx;
نوشتم ولی نشد