一部の文字列をリストビューに描画することはできますか?Winformsのカスタムリストビュー?
私はOnPaintイベントをオーバーライドしましたが、私は変更を見ません。カスタムリストビューでいくつかのコードをチェックアウトしましたが、人々がp/invokeなどを使用しているようです。なぜですか?
リストはButtonコントロールのように他のwinformsと同じようにカスタマイズできませんか?
私は荒々しくカスタマイズするつもりはなく、標準的な絵画を完成した後にもう少しペイントします。
一部の文字列をリストビューに描画することはできますか?Winformsのカスタムリストビュー?
私はOnPaintイベントをオーバーライドしましたが、私は変更を見ません。カスタムリストビューでいくつかのコードをチェックアウトしましたが、人々がp/invokeなどを使用しているようです。なぜですか?
リストはButtonコントロールのように他のwinformsと同じようにカスタマイズできませんか?
私は荒々しくカスタマイズするつもりはなく、標準的な絵画を完成した後にもう少しペイントします。
class MyCustomlistView : ListView
{
public MyCustomlistView()
: base()
{
SetStyle(ControlStyles.UserPaint, true);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawString("This is a custom string", new Font(FontFamily.GenericSerif, 10, FontStyle.Bold), Brushes.Black, new PointF(0, 50));
}
}
OwnerDrawプロパティをtrueに設定します。
次に、DrawItem,DrawSubItem、およびDrawColumnHeaderイベントを処理して、ListViewの特定の要素に描画することができます。
OnPaint()
メソッドを上書きすることはできません。そのメソッドはListViewで何もしません。同様に、OwnerDrawn
では、各セルをカスタム描画できますが、コントロール全体にペイントすることはできません。
ObjectListView(.NET WinForms ListViewのオープンソースラッパー)を使用し、そのOverlay featureを使用します。これは、このコードによって生成された
text over a ListView http://i37.tinypic.com/29zwu1d.jpg
:それはあなたが楽にこのような何かを行うことができます
this.olv1.OverlayText.Alignment = ContentAlignment.BottomRight;
this.olv1.OverlayText.Text = "Trial version";
this.olv1.OverlayText.BackColor = Color.White;
this.olv1.OverlayText.BorderWidth = 2.0f;
this.olv1.OverlayText.BorderColor = Color.RoyalBlue;
this.olv1.OverlayText.TextColor = Color.DarkBlue;
おかげで、これはトリックをしました。 –
これはListViewでは機能しません。これは単に、ListViewが何も描画しないようにします。 – Grammarian