设计有效的用户交互事件日志,以使我不会超过10000用户对象限制。

StackOverflow https://stackoverflow.com/questions/4770130

  •  22-10-2019
  •  | 
  •  

我有问题:在我的应用程序中,我获得了一些与事件相关的信息,因此,对于事件X,我应该得到一个表单窗口,其中我要做某种事情(输入一些文本并单击按钮)

我的问题是,对于我的应用程序,有10,000个用户对象限制(对于所有C#应用程序),对于我现有的代码,已经占据了3000个用户对象(因此,免费提供了约7000个用户对象)。我从200个客户的信息中收到有关每个客户端进行的一些事件的信息。

当我从客户端收到有关事件的信息时,我想以某种方式在事件日志窗口中以标签显示,当我单击标签特定表单窗口(我之前提到的)时,请弹出输入一些文本,然后单击按钮。

我需要能够有效地显示此事件日志窗口(因为我可以从每个客户端接收多达1000个事件,如果此日志中的每个标签占据1个对象,则表示每个客户端对每个客户端都有1000个对象(最大值,但可能)所以我将超过我的10000限制)。

我该如何有效地做些事情?

目前,对于每个事件,我都会启动一个表单窗口,其中我输入文本并单击一个按钮,但这不是有效的(因为我的表单窗口已经占据了3个用户对象,如果我有一个最大3 * 200个客户端 * 1000用户对象,我超过我的7000限制到目前为止)。

有帮助吗?

解决方案

我很难看到如何从这样的用户界面中获取数千个窗口。如果您创建 然后,为每个单独通知的标签控制,是的,这可能会急忙失控。也使它慢慢慢。

不要使用标签控件,使用ListBox,ListView,TreeView或DataGridView。可以显示多个项目但仅消耗单个窗口的控件。

其他提示

正如Hans Passant所说的那样 - Win32并非被设计为您尝试使用它的方式。

典型的实现看起来像这样:

alt text

如果有很多项目(如您所料,几千个项目),一个快速搜索框来过滤列表中的项目几乎是强制性的。

如果细节很复杂,则可以用生成的HTML替换静态Web浏览器控件。


如果您坚持要进行按钮,请遵守按钮(我不建议您使用UX),您需要自己渲染它,这是GDI中的PITA。或使用Web浏览器控件

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top