有没有人知道如何制作这样的下拉菜单?
如果是我,我会把它放在这里:
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
//in here
}
答案 0 :(得分:1)
是的,您可以使用ListBox
控件。
或强>
您可以通过将ComboBox
属性设置为DropDownStyle
来使用Simple
控件。
修改强>
如果要从ListBox中搜索字符串,并选择与其匹配的项目
You need to have a TextBox to receive the Serach String as input.
您需要处理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" };
}
}
}