我正在编写一个带有ListBox的C#App(WinForm),其中包含用户添加的内容。现在,我可以在ListBox下面有一个普通的按钮来删除项目,但是我希望按钮位于内容旁边,因此位于ListBox内部。
像这样:
问题在于我缺乏.NET经验,所以我不清楚如何通过所有自动化控件实现这一点。我用谷歌搜索了它,但没有得到任何有意义的结果。
欢迎任何有关实现这一目标的提示,线索或片段! :)
答案 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事件,如果它存储在数据库中或者从页面上的列表中删除项目,则发送一个调用来删除项目