多选ctrl +按钮在运行时单击

Viv*_*iva 5 c# select user-controls winforms

在我的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.
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 2

您可以获得所选控件的列表。只需确定单击控件时是否按下了 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);
}
Run Code Online (Sandbox Code Playgroud)