RightToLeftレイアウトは、アラビア語およびヒューブリュー文化のためのもので、右から左にテキストを書き込みます。また、テキストがレンダリングされる方法、副作用が見つかったことにも影響します。あなたはそれをあなたが望むようにするためにオーナードローを使用する必要があります。プロジェクトに新しいクラスを追加し、以下に示すコードを貼り付けます。コンパイル。新しいコントロールをツールボックスの上部からフォームにドロップします。
using System;
using System.Drawing;
using System.Windows.Forms;
class ReverseListBox : ListBox {
public ReverseListBox() {
this.DrawMode = DrawMode.OwnerDrawFixed;
}
protected override void OnDrawItem(DrawItemEventArgs e) {
e.DrawBackground();
if (e.Index >= 0 && e.Index < this.Items.Count) {
var selected = (e.State & DrawItemState.Selected) == DrawItemState.Selected;
var back = selected ? SystemColors.Highlight : this.BackColor;
var fore = selected ? SystemColors.HighlightText : this.ForeColor;
var txt = this.Items[e.Index].ToString();
TextRenderer.DrawText(e.Graphics, txt, this.Font, e.Bounds, fore, back, TextFormatFlags.Right | TextFormatFlags.SingleLine);
}
e.DrawFocusRectangle();
}
}
大変ありがとうございます!素晴らしい作品です(少なくともIronPythonモジュールとして)。 –