c# - 多选 ctrl+button 在运行时点击

标签 c# winforms select user-controls

在我的 winform 上,我有在每次单击按钮时动态创建的用户控件。我希望在运行时能够通过单击一次然后按下 ctrl 按钮来选择它们。我设法做到了,但只是为了一个。我怎样才能为他们所有人工作?我的代码:

  private void TControl_Click(object sender, EventArgs e) //TControl is the name of usercontrol
    {
        TControl tc = new TControl();
        Control ctrl = sender as Control;
        if (ctrl != null)
       tc = ctrl;//it doesn't work like this.

最佳答案

您可以拥有选定控件的列表。只需确定当您单击控件时是否按下了 Ctrl 并将其添加到选定列表(如果之前添加了控件,您也可以将其删除):

List<TControl> selectedControls = new List<TControl>();

private void TControl_Click(object sender, EventArgs e)
{
    if ((ModifierKeys & Keys.Control) == 0)
        return;

    TControl tc = (TControl)sender;
    if (selectedControls.Contains(tc))
        return; // you can remove control here

    selectedControls.Add(tc);
}

关于c# - 多选 ctrl+button 在运行时点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15780322/

相关文章:

html - 选项 txt 是覆盖谷歌浏览器上选择的下拉箭头

c# - IObservable 按下的键

c# - 只允许数字和负值

c# - 如何使用 cultureinfo 删除千位分隔符?

android - 在 Android 上使用 rawQuery SELECT .. WHERE ... IN

mysql - 嵌套 SQL 查询在 MySql 中以不同形式运行时抛出错误

c# - 删除多余的空格,但在 C# 中使用正则表达式保留新行

带有 ref 参数的 c# 静态方法 - 一个好主意?

c# - MVC WebApi 端点不适用于生产环境,但常规端点可以

c# - 找到最好的原型(prototype)设计工具