当前位置: 首页 > 编程语言 > C#

动态显示数百张图片分享

时间:2023-04-11 01:46:56 C#

动态显示数百张图片我必须创建一个可以显示电影院(不知道确切词)模态的窗体。基本上,我必须显示大量(由另一个来源提供)类似椅子的图像,这些图像可以在单击时改变颜色(状态)。我在网上搜索了解决方案,但我真的不知道如何解决这个问题。有人能帮我吗?如果您需要绘制那么多图像,最好的办法是使用面板控件并通过处理OnPaint事件或更好的方法来处理绘图:创建一个继承自Panel控件并重写Paint方法的自定义控件。请参阅有关如何在.NET中创建自定义绘制控件的在线示例。不要尝试使用Image控件或其他类似控件创建数百个图像,因为这会增加大量开销。在Paint方法中,您可以使用DrawImage函数根据椅子的不同状态(即选中或未选中)绘制椅子。您可以将椅子的状态存储在内存中的一维或二维数组中,然后在Paint方法中遍历每把椅子,根据其索引计算椅子在屏幕上的位置:for(intchairIndex=0;chairIndexwhenYoualso当用户单击椅子以切换内存中的状态时,必须处理鼠标事件以进行“命中测试”。//根据鼠标位置计算chairIndex(用于命中测试)chairIndex=mouseX/chairWidth+(mouseY/chairHeight)*chairsPerLine;//然后相应地切换状态上面??的代码片段假设您之前已经定义了一些变量,您已经将不同的椅子图像加载到两个或更多变量中,并且您正在使用一维数组来存储椅子状态。我会说最简单的方法是创建并拥有一个“椅子控件”来处理它的点击事件等。这只不过是一个简单的用户定义控件,如果需要,它将椅子图像作为背景(和其他交换的)图片)。之后,您可以通过代码(伪代码)轻松创建这些控件的重要部分:for(introw=0;行构造函数获取行号和列号并自动调整其位置fe。我想添加到Bobby的回答是的,控件应该将图像预渲染为单个位图并使用它来刷新屏幕。更新位图以反映用户更改。有数百种解决方案:D。例如,您可以将它们安排到一个布尔网格中,为绘制椅子的单元格自定义绘制,并为更改绑定到网格状态的列表/数据集的单元格单击事件。以上就是C#学习教程:动态显示百张图片分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: