C# listbox
どうしても解らないのでご教授お願いたします.
やりたいことは単純なのですが,リストボックスにドラックドロップしたときに表示する
フォント(文字の色とサイズ)を変更したいのですが,下記のプログラムではドラッグドロップ
するとリストが真っ白になってしまいます.いろいろ調べたのですが何が原因が解りません.
何卒よろしくお願いいたします.
private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
listBox1.Items.Clear();
listBox1.DrawMode = DrawMode.OwnerDrawVariable;
//コントロール内にドロップされたとき実行される
//ドロップされたすべてのファイル名を取得する
string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop, false);
//ListBoxに追加する
listBox1.Items.AddRange(fileName);
listBox1.Sorted = true;
}
private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
//コントロール内にドラッグされたとき実行される
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
//ドラッグされたデータ形式を調べ、ファイルのときはコピーとする
e.Effect = DragDropEffects.Copy;
}
else
{
//ファイル以外は受け付けない
e.Effect = DragDropEffects.None;
}
}
//DrawItemイベントハンドラ
//項目を描画する
private void ListBox1_DrawItem(object sender,System.Windows.Forms.DrawItemEventArgs e)
{
//背景を描画する
Font cfont = new Font("MS P明朝", 9, FontStyle.Bold);
//適切な色で背景を描画する。
e.DrawBackground();
Rectangle rec = e.Bounds;
Graphics g = e.Graphics;
Color col = Color.Black;
Font deffont = e.Font;
deffont = cfont;
string txt = ((ListBox)sender).Items[e.Index].ToString();
TextRenderer.DrawText(g, txt, deffont, rec, col, TextFormatFlags.Default);
}
お礼
ありがとうございます、試してみます。 時間がかかりそうなので、まずはお礼まで。