我希望能够拖动一堆控件并选择某种类型的控件(文本框)。
拖动操作完成后,我想显示一个输入框(是的,我必须引用/使用 VB .dll),提示用户输入将在每个选定的 TextBox 中输入的值。
这可以做到吗?(当然,但是如何?)
还是有另一种方法来完成同样的事情(允许用户快速选择多个控件,然后一次对所有控件执行操作)?
更新:
我已经完成了这种工作——“警告”或“陷阱”是我必须向用户弹出 MessageBox.Show() 才能使其工作。本质上,我:
如果选择了鼠标右键,则在容器的(在我的情况下为 FlowLayoutPanel)MouseDown 事件上将布尔值设置为 true。
如果选择了鼠标右键,则在容器的 MouseUp 事件上将相同的布尔值设置为 false。
然后,我为该表单上的所有 TextBox 提供了一个共享的 MouseHover 事件处理程序,如果布尔值为 true,则更改 BackColor(在我的情况下,从 Window 更改为 Gainsboro)。
在容器的 MouseUp 事件中,我还使用 InputBox(引用/导入/使用 VB .dll)请求用户输入“突出显示的”文本框通用的值。然后,我遍历它们,寻找具有该 BackColor 的那些,并将用户提供的值分配给它们的 Text 属性。
瞧!
不幸的是,当您以这种方式为其赋值时,TextBoxes 的 Modified 属性似乎没有改变,所以我不得不解决这个问题(明确地将“保存”按钮设置为启用),并且我不得不添加更多代码来复制我的KeyPressed 代码,用于限制用户输入的值。
所以,当然,这是可能的,尽管有点笨拙。不过,我还没有决定 MessageBox.Show() 是“错误”还是功能......