如何在面板中的许多其他标签中找到特定标签?

How to find a particular label among many other labels in a panel?

我有一个 windows 应用程序,其中有许多垂直放置的标签(从上到下)。滚动条用于查看所有标签。我想在此应用程序中包含一个 search/find 函数。使用它,用户可以在文本框中输入标签名称并单击搜索按钮,滚动条应自动移动到该标签所在的位置。

有办法吗?

提前致谢!

/马诺杰.

第一步,您应该拥有标签列表,并使用例如 TAG 或 NAME 属性 作为搜索列表中标签的键。

找到标签后,您可以找到 Position 属性,它告诉您标签在其父项中的相对位置。

那么,现在你有 2 个选择:

  • 使用 Win32 Api(更难)
  • 使用类似 here
  • 的技巧

再见

找到标签名称并聚焦标签。

foreach (Control c in this.Controls)
  {
    if (c.Name == LabelNameinTextBox.Text)
       {
          this.ScrollControlIntoView(c);
          break;
        }
   }