该程序的目的是允许用户通过在屏幕上选择它们来点亮面板上的多个LED。我在当前构建的按钮阵列中,用户必须单独单击所有按钮。该阵列可容纳1536个LED,这就是很多的点击。我希望用户能够按住鼠标按钮并点亮它们交叉的任何LED。我想说的是这样的:鼠标事件处理程序
buttonArray[row, column].MouseLeave += new System.Windows.Forms.MouseEventHandler(ClickButton);
再有一个像常规:
private void ClickButton(Object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button==MouseButtons.Left)
{
//blah blah
}
}
这将触发任何时候用户鼠标进入到一个按钮上,然后我会检查,看看他们是否按住按钮。现在我收到此错误:
Error 1 Cannot implicitly convert type 'System.Windows.Forms.MouseEventHandler' to 'System.EventHandler'.
好像我没有委托和处理的正确的匹配,或者说我不理解的命名空间的东西......还挺新的C#。我在MSDN上偶然发现了一段时间,并且发现了很多与我的工作相似的示例。
绘图程序不会为每个像素使用控件。你的程序只是一个脂肪像素的绘画程序。停止使用控件,其余的很简单。 – 2012-08-07 23:31:47
你将会遇到的一个问题是,当鼠标按钮关闭时,MouseLeave事件不会被触发。接收MouseDown事件的控件捕获鼠标,直到Button被释放。你真的需要看看汉斯的建议。 – 2012-08-08 00:41:20