【问题标题】:Getting Object details from list从列表中获取对象详细信息
【发布时间】:2016-01-06 06:30:26
【问题描述】:

我在 win form 中工作,其中有一个名为 Notes 的列表,其中包含不同的值,例如 NoteIdNotetype笔记名称。每个创建的笔记都显示在 Panel 中,带有 noteid、note type、notename 。就像所有面板都加载到表单中一样。

要求是,当用户点击任何字段(即 NoteId 或 NoteType 或 NoteName)时,所有详细信息都应加载到可编辑的文本框中进行编辑。

当用户单击唯一的 NoteId 时,我执行以下操作以获取注释详细信息:

foreach (Note n in noteRetrieve)
{
     Var index = Array.FindIndex(noteRetrieve, x => x.noteType == clickValue);            
}

所以我得到了那个特定 Note 的索引,然后我得到了 noteetails

tbTitle.Text = noteRetrieve[index].noteName;

等等。

但是 NoteTypeNoteNameNOT UNIQUE,所以我不能使用上述逻辑。

如何做到这一点?

【问题讨论】:

  • 所有笔记都显示在哪里?在网格中还是在列表框中?
  • Notes 显示在 Panel 中,每个 note 都在 FlowLayout Panel 中。
  • @DigambarMalla 我想你正在寻找这样的东西codeproject.com/Articles/6646/…
  • @Anirugu 链接显示类似就地编辑的内容,但我的要求不同...
  • 当然你可以找到解决问题的方法,例如当你在流布局面板和面板中放置控件时,你可以将父级标签(甚至编辑控件的标签)设置为节点id 然后使用它从列表中加载数据。但我这不是一个常见的 Windows 窗体解决方案,您可以简单地使用数据绑定到列表而不是这种尴尬的解决方案。

标签: c# winforms arraylist


【解决方案1】:

根据给定的建议和分析,我找到了解决方案。

标签对象有一个标签属性。我们可以为每个类型和名称标签分配 Id 值。然后,当我们点击标签时,我们可以从 Tag 属性中获取笔记 Id。

例如,将 Id、Type 和 Name 视为 Note,Type1 和 Name1。现在,将显示 Type1 和 Name1 的标签将 Tag 属性值设置为 1。您需要在创建标签时设置此值。在单击事件处理程序上,您可以获得标记值并显示正确的注释。

再次感谢大家的建议:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 2018-01-19
    • 2012-06-02
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多