gpt4 book ai didi

c# - 如何向 ListBoxItem 添加上下文菜单?

转载 作者:IT王子 更新时间:2023-10-29 04:12:39 25 4
gpt4 key购买 nike

我有一个 ListBox,我想为列表中的每个项目添加一个上下文菜单。我已经看到“解决方案”让右键单击选择一个项目并在空白处抑制上下文菜单,但这个解决方案感觉很脏。

有没有人知道更好的方法?

最佳答案

只是进一步详细说明 Frans 所说的...即使 ListBox 拥有 ContextMenuStrip,您仍然可以在菜单条打开时自定义菜单条中的项目。因此可以根据鼠标在列表框中的位置自定义其内容。

下面的示例根据鼠标右键单击选择列表框中的项目,然后根据用户右键单击的项目自定义上下文菜单条。这是一个简单的示例,但应该让您开始:将列表框添加到表单并添加以下代码:

#region Private Members
private ContextMenuStrip listboxContextMenu;
#endregion

private void Form1_Load( object sender, EventArgs e )
{
//assign a contextmenustrip
listboxContextMenu = new ContextMenuStrip();
listboxContextMenu.Opening +=new CancelEventHandler(listboxContextMenu_Opening);
listBox1.ContextMenuStrip = listboxContextMenu;

//load a listbox
for ( int i = 0; i < 100; i++ )
{
listBox1.Items.Add( "Item: " + i );
}
}

private void listBox1_MouseDown( object sender, MouseEventArgs e )
{
if ( e.Button == MouseButtons.Right )
{
//select the item under the mouse pointer
listBox1.SelectedIndex = listBox1.IndexFromPoint( e.Location );
if ( listBox1.SelectedIndex != -1)
{
listboxContextMenu.Show();
}
}
}

private void listboxContextMenu_Opening( object sender, CancelEventArgs e )
{
//clear the menu and add custom items
listboxContextMenu.Items.Clear();
listboxContextMenu.Items.Add( string.Format( "Edit - {0}", listBox1.SelectedItem.ToString() ) );
}

希望对您有所帮助。

关于c# - 如何向 ListBoxItem 添加上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/376910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com