有没有办法制作这样的下拉菜单?

时间:2014-04-14 14:51:12

标签: c# drop-down-menu menu

有没有人知道如何制作这样的下拉菜单?

http://puu.sh/88oLL.png

如果是我,我会把它放在这里:

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
    //in here
}

2 个答案:

答案 0 :(得分:1)

是的,您可以使用ListBox控件。

您可以通过将ComboBox属性设置为DropDownStyle来使用Simple控件。

修改

如果要从ListBox中搜索字符串,并选择与其匹配的项目

You need to have a TextBox to receive the Serach String as input.

enter image description here

您需要处理TextBox Key_Down事件处理程序以开始搜索。

注意:在下面的代码中,我在用户输入输入搜索字符串后输入ENTER键时开始搜索。

试试这个:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            var itemSearched = textBox1.Text;
            int itemCount = 0;
            foreach (var item in listBox1.Items)
            {
                if (item.ToString().IndexOf(itemSearched,StringComparison.InvariantCultureIgnoreCase)!=-1)
                {
                    listBox1.SelectedIndex = itemCount;
                    break;
                }

                itemCount++;
            }
        }
    }

答案 1 :(得分:0)

看起来你需要来自WPFToolkit的AutoCompleteBox。 您可以使用以下命令从NuGet进行设置:

PM> Install-Package WPFToolkit

以下是使用此控件的代码段:

XAML:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <toolkit:AutoCompleteBox x:Name="InputBox" Margin="0,77,0,159"/>
</Grid>

C#:

using System.Collections.Generic;
namespace WpfApplication1
{
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
            InputBox.ItemsSource = new List<string>
            { "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten" };
        }
    }
}