c# - 多个按钮的 MouseEnter 事件上的 Visual Studio 更改面板背景颜色
问题描述
我是 C# 的新手,并且在搞乱事件处理程序。我的表格中有很多面板。如果我的鼠标在它们上方,我希望它们改变颜色。我可以在我的 Form.cs 中为每个面板创建单独的函数。有没有更有效的方法?您可以通过事件传递参数并执行类似的操作并将所需的面板作为参数发送吗?
private void Panel_MouseEnter(object sender, EventArgs e, Panel p)
{
p.BackColor=System.Draw.etc;
}
我将如何从我的 Form.Designer.cs 中调用它?
解决方案
面板实际上是发送者,你所需要的只是Panel p = (Panel)sender;
因为这个,事件实际上可以被所有面板重复使用。
这意味着您可以将所有面板悬停事件注册到同一个函数。
完整代码:
private void Panel_MouseEnter(object sender, EventArgs e)
{
Panel p = (Panel)sender;
p.BackColor=System.Draw.etc;
}
推荐阅读
- python - 在已经使用 OpenCV 但版本不同的 C++ 中嵌入带有 OpenCV 的 python 的内存损坏
- python - OpenCV 错误:断言失败(nimages > 0 && nimages == (int)imagePoints1.tot ........ line3106
- javascript - 使用模板字符串定义 HTML 属性
- c++ - 运算符重载错误:无法将“some-type”类型的非常量左值引用绑定到“some-type”类型的右值
- javascript - Meteor 调用结果有未定义的实例变量
- c# - WinUI 3 xaml ABI.Microsoft.UI 与 Microsoft.UI
- webpack - 使用 babel regenerator-runtime 的异步/等待在 ie11 中不起作用
- fluid-framework - Riddler 服务在 Fluid Framework 参考服务中有什么作用?
- reactjs - 使用 refs 修改 React.js 中的元素
- r - 通过R中的索引解析多种日期格式