【问题标题】:How to achieve multiple grids like the SQL server Results pane如何实现多个网格,如 SQL 服务器结果窗格
【发布时间】:2011-01-25 08:54:47
【问题描述】:

我的项目又遇到了问题 :(

前端是C#

我需要像 MS SQL 服务器那样支持多行查询,当这些查询被执行时,自然会有多个结果集。

获取与结果相关的数据表不是问题,但我如何让它看起来像它在 MS SQL 服务器中完成的那样。一个结果集低于另一个结果并带有滚动条?

我应该将它绑定到数据网格吗?如果是这样,我如何将多个表绑定到数据网格?它会自动生成滚动条和列吗?

如果我不清楚,请告诉我,我会尝试更清楚。

ps:如果有人知道如何使用 devexpress 中的 XtraGridControl 来做到这一点,那就太棒了! :D

【问题讨论】:

  • +1 你有一个有趣的问题。 +1 对收到的两个答案。为了保持简单,我认为没有其他方法。

标签: c# .net datatable devexpress winforms


【解决方案1】:

您可以在表单上设置一个带有滚动条的面板,并根据数据源的数量以编程方式添加数据网格的数量。只需将 datagrid 控件添加到定义的面板即可。

【讨论】:

  • 是的,我确实想到了。但是应该有更好的方法来做到这一点。这对我来说似乎不是正确的方法。
  • @Skun:这是最好的方法。
【解决方案2】:

您可能想要的控件是System.Windows.Forms.FlowLayoutPanel(参见FlowLayoutPanel@msdn

它适用于 .NET v2 及更高版本。

flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
....
// for each result...
flowLayoutPanel1.Controls.Add(newGrid);

我之前用过,也达到了类似的效果。我没有但是尝试重新调整其中的项目大小,它们的高度是固定的(重新调整宽度以适合父项)。

您应该能够使用所需数据创建每个XtraGridControl 实例并将其添加到上述控件中。

PK :-)

【讨论】:

  • 让我试试这个!希望它有效! :( 到目前为止,如果我有 'n' 个网格要显示,我将 n-1 个网格停靠在顶部,第 n 个网格作为填充。这也让我失望了 :(
  • 没有不起作用 :( 只有 2 个网格从上到下,然后第 3 个网格从第一个网格旁边开始!:(
  • 试着弄乱网格的Width。从记忆中,我们观察了孩子的 re-size 事件,然后根据 parent.ClientWidth 进行排列...
  • 顺便说一句,我只是用制表符做到这一点...见minisqlquery.codeplex.com - 我的列表中只有文本 - 如果超过 3 个以上,我发现多个网格有点混乱......跨度>
  • 嗯..有趣! :D 让我调查一下,我会回来的! :D 好吧,既然你帮了我这么多:) 赏金是你的! :D 耶!
【解决方案3】:

SQL Management Studio 不会在单个网格中显示所有结果,除非它是 UNION 查询。将多个网格附加到单个可滚动窗格是正确的方法,除非您想将它们分成单独的选项卡。

【讨论】:

  • 是的,我知道。我的意思是如何将多个网格附加到单个可滚动窗格?!请帮忙。
  • 只需在运行时创建一个新的 Grid (GridControl myGrid = new GridControl()),并将其分配给 Panel 的 Control 的集合。
猜你喜欢
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多