私のリストボックスに、次を表示したいと思います
String 1(left aligned - default) int value(right aligned)
これを行う方法はありますか、またはリストボックスに配置できるのは 1 つだけですか?
Winforms で使用している場合は、このコードを使用できます。
DrawMode
ListBoxのプロパティを次のように設定できます。DrawMode.OwnerDrawFixed
ListBox listBox = new ListBox();
listBox.DrawMode = DrawMode.OwnerDrawFixed;
listBox.DrawItem += new DrawItemEventHandler(listBox_DrawItem);
void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
ListBox list = (ListBox)sender;
if (e.Index > -1)
{
object item = list.Items[e.Index];
e.DrawBackground();
e.DrawFocusRectangle();
Brush brush = new SolidBrush(e.ForeColor);
SizeF size = e.Graphics.MeasureString(item.ToString(), e.Font);
e.Graphics.DrawString(item.ToString(), e.Font, brush, e.Bounds.Left + (e.Bounds.Width / 2 - size.Width / 2), e.Bounds.Top + (e.Bounds.Height / 2 - size.Height / 2));
}
}
WPFを使用する場合。これは XAML で機能するはずです。
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinition>
<ColumnDefinition Width="Auto" MinWidth="100"/>
<ColumnDefinition Width="Auto" MinWidth="100"/>
</Grid.ColumnDefinition>
<TextBlock Text="{Binding 1}" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding value}" HorizontalAlignment="Right" Grid.Column="1"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
メモリ不足です。少し調整する必要があるかもしれません。
ちなみに、「1」や「値」などの変数名は、悪い名前付けのカテゴリに属します;-)それが投稿のためのものであり、実際の作業コードのためのものではないことを願っています.
次回は、表示するテクノロジ (WinForms、WPF、ASP.net など) を明確にすることもできます。
クリストフ