C# - 在ListBox中添加Button

时间:2009-05-02 11:22:10

标签: c# .net listbox

我正在编写一个带有ListBox的C#App(WinForm),其中包含用户添加的内容。现在,我可以在ListBox下面有一个普通的按钮来删除项目,但是我希望按钮位于内容旁边,因此位于ListBox内部。

像这样:

  • 内容1 | X
  • 内容2 | X
  • ...
  • 内容5 | X

问题在于我缺乏.NET经验,所以我不清楚如何通过所有自动化控件实现这一点。我用谷歌搜索了它,但没有得到任何有意义的结果。

欢迎任何有关实现这一目标的提示,线索或片段! :)

5 个答案:

答案 0 :(得分:6)

而不是ListBox,你可以使用ListView,ListView有ability to add custom column types

答案 1 :(得分:3)

因此,人们可以制作自定义控件,但对于我的应用程序来说,这不值得麻烦。

我所做的是创建一个DataGrid,使其类似于ListView但具有自己的耀斑。我这样做是因为DataGrid已经在其单元格中内置了一个buttoncontrol。

是的,我知道,有点狡猾的“黑客”,但它就像一个魅力! :)

Shay Erlichmen的道具让我想到了我的ListBox。看看我在那里做了什么? ;)

答案 2 :(得分:2)

使用System; 使用System.Collections.Generic; 使用System.Windows.Forms;

命名空间WindowsFormsApplication11 {     公共部分类Form1:表格     {         列出_items = new List();

    public Form1()
    {
        InitializeComponent();

        _items.Add("One");
        _items.Add("Two");
        _items.Add("Three");

        listBox1.DataSource = _items;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // The Add button was clicked.
        _items.Add("New item " + DateTime.Now.Second);

        // Change the DataSource.
        listBox1.DataSource = null;
        listBox1.DataSource = _items;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        // The Remove button was clicked.
        int selectedIndex = listBox1.SelectedIndex;

        try
        {
            // Remove the item in the List.
            _items.RemoveAt(selectedIndex);
        }
        catch
        {
        }

        listBox1.DataSource = null;
        listBox1.DataSource = _items;
    }
}

}

private void button1_Click(object sender,EventArgs e) {     //单击了“添加”按钮。     // ...

button2.Enabled = true;

}

private void button2_Click(object sender,EventArgs e) {     //单击“删除”按钮。     // ....

if (listBox1.Items.Count == 0)
{
    button2.Enabled = false;
}

}

答案 3 :(得分:1)

假设它是一个WinForms应用程序

你需要一个自定义控件。我会检查像http://www.devexpress.com/Products/NET/Controls/WinForms/Editors/editors/ListBoxes.xml这样的供应商,也许有人知道一个专门做那个的控件。

答案 4 :(得分:-1)

我不知道你为什么要特意做那个?我会在底部放一个按钮,删除列表框中的所有选定项目。这被认为是做这种事情的常用方法,除非你想使用jquery并在列表框上放置一个onClick事件,如果它存储在数据库中或者从页面上的列表中删除项目,则发送一个调用来删除项目