Здравствуйте, есть код заполнения в combobox.
Код:
comboBoxRabot.DrawMode = DrawMode.OwnerDrawVariable;
comboBoxRabot.DrawItem += comboBoxRabot_DrawItem;
comboBoxRabot.MeasureItem += comboBoxRabot_MeasureItem;
DataTable rabot = new DataTable();
NpgsqlDataAdapter adap = new NpgsqlDataAdapter("SELECT id_raboti,naimenovanie FROM \"raboti\"", conn);
adap.Fill(rabot);
comboBoxRabot.DataSource = rabot;
comboBoxRabot.DisplayMember = "naimenovanie";
comboBoxRabot.ValueMember = "id_raboti";
и код для переноса строк, но выводит не правильно, пытаюсь исправить, не получается. помогите, пожалуйста.
Код:
private void comboBoxRabot_MeasureItem(object sender, MeasureItemEventArgs e)
{
var lbox = (ComboBox)sender;
var text = lbox.Items[e.Index].ToString();
var width = lbox.ClientSize.Width;
var size = e.Graphics.MeasureString(text, lbox.Font, width);
e.ItemHeight = (int)size.Height;
}
private void comboBoxRabot_DrawItem(object sender, DrawItemEventArgs e)
{
var lbox = (ComboBox)sender;
var color = e.Index % 2 == 0 ? Color.LightGreen : SystemColors.Window;
using (var brush = new SolidBrush(color))
{
e.Graphics.FillRectangle(brush, e.Bounds);
e.Graphics.DrawString(lbox.Items[e.Index].ToString(), e.Font, SystemBrushes.WindowText, e.Bounds);
}
}