我正在创建一个Windows窗体应用程序,我需要一个包含项目的组合框,每个项目打开另一个组合框,用户可以专门选择。
一个例子: 我的组合框中有2个项目。 丹麦语 英语单词
当用户选择英文单词时,它会打开另一个组合框,用户可以在其中选择英文单词。
如何制作这种组合框?
**编辑:它不需要组合框,只是实现相同结果的东西
问题的图片:
答案 0 :(得分:0)
试试这段代码:
我创建了两个名为language_CmbBx的ComboBox和一个名为words_CmbBx的ComboBox。
我设置words_CmbBx.Visible = false;
private void language_CmbBx_SelectedIndexChanged(object sender, EventArgs e)
{
this.Cursor = new Cursor(Cursor.Current.Handle);
words_CmbBx.Location = new Point(language_CmbBx.Location.X + language_CmbBx.Width, GetLocalMousePos().Y);
words_CmbBx.Visible = true;
}
此方法用于获取鼠标位置或所需selectedItem的位置:
public Point GetLocalMousePos()
{
Point screenPos = Cursor.Position;
return this.PointToClient(screenPos);
}
唯一的问题是ComboBox不会保持打开状态,我还没有办法让它保持打开状态。
正如我已经提到的,使用ComboBox实现你想要的东西真的很难,试着改用ListBox:
private void languages_LstBx_SelectedIndexChanged(object sender, EventArgs e)
{
this.Cursor = new Cursor(Cursor.Current.Handle);
words_LstBx.Location = new Point(language_LstBx.Location.X + language_LstBx.Width, GetLocalMousePos().Y);
words_LstBx.Visible = true;
}
相同的代码,更好的结果!
您可以在此处下载我的VS2010项目:http://www.abouchleih.de/projects/twocomboboxes.zip