列表框中的格式问题

时间:2015-10-11 15:50:40

标签: c# winforms listbox

我希望以public class Window extends Canvas{ private static final long serialVersionUID = 1L; private JFrame frame; public Window(BufferedImage icon){ this.setMinimumSize(new Dimension(128, 128)); this.setMaximumSize(new Dimension(128, 128)); this.setPreferredSize(new Dimension(128, 128)); this.setSize(128, 128); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(this, BorderLayout.CENTER); frame.setResizable(false); frame.setLocationRelativeTo(null); frame.pack(); frame.setVisible(true); if(icon != null){ frame.setIconImage(icon); } }} 这种格式显示:

  

“文件名大小”;

listbox

enter image description here

我该怎样做才能使它在右边对齐?

2 个答案:

答案 0 :(得分:2)

使用ListView控件,而不是允许列和许多其他功能。

首先添加控件,然后选择它并转到控件的属性并将查看更改为详细信息。这将允许您查看具有可调整大小的列名称的列表。

接下来,创建两列(一个用于文件名,另一个用于文件大小)或者在您的情况下可能是什么。要执行此操作,请在属性窗口中转到“列”并单击它以获取允许您添加列的对话框窗口。

最后,这里有一些关于如何使用ListView的示例代码。

private void Form1_Load(object sender, EventArgs e)
{
    var fileListForExample = Directory.GetFiles(@"C:\");
    foreach (var item in fileListForExample)
    {
        FileInfo fileInfo = new FileInfo(item);
        var lstItem = new ListViewItem(Path.GetFileName(item));
        lstItem.SubItems.Add(fileInfo.Length.ToString());

        var itemAdded = listView1.Items.Add(lstItem);
    }
}

enter image description here

enter image description here

答案 1 :(得分:0)

您可以在ListBox中手动绘制项目 例如:

public Form1()
{
    //InitializeComponent();
    this.Width = 500;

    var listBox = new ListBox { Parent = this, Width = 400, Height = 250 };
    listBox.DrawMode = DrawMode.OwnerDrawFixed;

    var files = new DirectoryInfo(".").GetFiles();
    listBox.DataSource = files;

    listBox.DrawItem += (o, e) =>
    {
        e.Graphics.DrawString(files[e.Index].Name, listBox.Font, Brushes.Black, e.Bounds);

        var length = files[e.Index].Length.ToString();
        var size = e.Graphics.MeasureString(length, listBox.Font);

        e.Graphics.DrawString(length, listBox.Font,
            Brushes.Black, e.Bounds.Width - size.Width, e.Bounds.Y);
    };
}

enter image description here