0

ListBox でテキストに色を付ける試みとして、このガイドC# を見つけました: リストボックス項目の色を変更します (Visual Studio 2012 で Windows フォーム アプリケーションを使用しています)。コードは機能していますが、テキストボックスを右から左モードで使用したいのですが、リストボックスの設定で変更すると機能しないため、コードで何らかの方法で変更する必要があると思います。これは私があなたの助けを必要とするものです。どうもありがとうございました!アロン

4

2 に答える 2

1

yの位置は0なので、メッセージを挿入するたびに左側に表示されます。右側に配置するには、位置を再計算します。

次の例を見てください。

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    MyListBoxItem item = listBox1.Items[e.Index] as MyListBoxItem; // Get the current item and cast it to MyListBoxItem
    if (item != null)
    {
        e.Graphics.DrawString( // Draw the appropriate text in the ListBox
                   item.Message, // The message linked to the item
                   listBox1.Font, // Take the font from the listbox
                   new SolidBrush(item.ItemColor), // Set the color 
                   width - 4, // X pixel coordinate
                   e.Index * listBox1.ItemHeight,
                   new StringFormat(StringFormatFlags.DirectionRightToLeft)); // Y pixel coordinate.  Multiply the index by the ItemHeight defined in the listbox.                
    }
    else
    {
        // The item isn't a MyListBoxItem, do something about it
    }
}
于 2012-08-17T12:33:52.077 に答える
0

リスト ボックスはネイティブに左揃えであり、UIR エディターでこれを変更することはできません。リスト ボックスに渡す文字列を作成するときに、適切な正当化要素を適用できますInsertListItem。関数のアイテム ラベル パラメータのオンライン ヘルプを参照してください。すべてのエスケープ コードは、リスト ボックスに挿入するすべての行に適用されます。コントロールに既定の書式設定スタイルを適用する方法はありません。

于 2012-08-17T14:20:24.103 に答える