2014-11-05 37 views
0

C#windows窗体在这里。而且我知道这个数据库结构可能和克拉肯一样糟糕,但这是我必须要处理的。数据库中的表格包含与该问题相关的问题和字段名称。举例来说,如果问题是您今天进来的5个理由。字段名称可以是沿着reason1,reason2,reason3,reason4,reason5的行。只是另一个例子,这可能描绘出这是怎么设置窗体上的控件布局

PollQuestion ----------- FieldName 
5 reasons you cam in? reason1 
         reason2 
         reason3 
         reason4 
         reason5 
Fav video you saw?  favorVideo 
Three improvements?  improve1 
         improve2 
         improve3 

爱特画面更好,所以我需要的字段名排队在一个符合有相应的问卷调查问题,所以应该这样写

PollQusetion1 --- reason1 reason2 reason3 reason4 reason5 
PollQuestion2 ---- favorVideo 
PollQuestion3 ---- improve1 improve2 improve3 

我正在轮询数据库并将投票问题&字段名存储在两个单独的列表变量中,然后输出到流布局面板。我试图使用这个逻辑来保持字段名与pollquestion在同一行,但它并不按需要工作。

if (pollquestion != "") { flowlayoutpanel1.SetFlowBreak(fieldname, true); } 

但是,这并没有给我所需的输出。能否有人在这方面有更多的经验,请帮助我?如果需要进一步编码,我也可以生产。在此先感谢所有查看,并提供见解!

编辑---- 111 这是输出if语句给我 -

PollQusetion1 --- reason1 reason2 reason3 reason4 reason5 PollQuestion2 ---- favorVideo 
PollQuestion3 ---- improve1 improve2 improve3 

EDIT ------ 2222 这是一个像我所引用的如何,如果()声明起作用。我需要将所有文本框放在同一行上,然后从第二个标签测试文本开始,将texbox放在它自己的行上。 enter image description here

+0

什么不工作? 'SetFlowBreak'或'if'?我的意思是,你是否在与逻辑斗争,或者你需要一些调试帮助(也就是为什么'SetFlowBreak'不工作)。 – Sinatr 2014-11-05 13:31:36

+0

@Sinatr我需要pollquestions&fieldnames在flowbreakout面板上显示的布局显示不正确。 – MasterOfStupidQuestions 2014-11-05 13:37:40

+0

好的,'if'是否有效?你有没有得到过'SetFlowBreak'?也许你的pollquestion是'null',你必须使用'string.IsNullOrEmpty()'。 – Sinatr 2014-11-05 13:39:17

回答

0

我想你应该尝试使用TableLayoutPanel加上Panel

因此,从您创建的表格布局开始,您可以创建两列和多行问题。在第一列中,您输入一个标签(多行,Dock = Fill),您可以在其中输入问题文本。在第二列中,您放置了一个面板(也可以填充停靠),您可以在其中插入所有您喜欢的文本框(或复选框,单选按钮等),但是Dock = Top。

接下来的难点是确定每一行的高度。这可以通过简单地计算每个问题的字段名称数量并将其乘以每个选项占用的一些幻数(例如20px)加上一些小填充(可能是5px)来实现。

+0

我无法设置dock = fill,因为它们是data @ top。我可以将它设置为仅填充底部还是给出x/y坐标以开始填充? – MasterOfStupidQuestions 2014-11-05 15:14:32

+0

@MasterOfStupidQuestions:data @ top在哪里?我只讨论了表格布局中所有元素的底座风格。我没有提到表格布局本身的底座风格。 – Oliver 2014-11-06 08:08:08

+0

但是,如果您有两个控件,您可以设置一个(或多个)以停靠顶部,另一个则停靠填充。然后,你所有的顶级控制器将坐在顶部,并且充满的控制器将占用剩下的空间。如果这不适合你,你必须知道,如果码头物业订单很重要。因此,在设计视图中打开View - Other windows - Document Outline,并确保填充控件是第一个,所有其他都在它下面。在文档大纲中,您可以更改此顺序。 – Oliver 2014-11-06 08:12:49