C#用按钮改变表单的布局

时间:2015-08-10 10:15:02

标签: c# layout

好的,我是一年级的计算机工程师,我是C#的新手,我有一个化学项目,我们将创建一个周期表应用程序。问题是如何在C#中对图片进行排序,例如,只需点击一下,它就会显示所有碱性金属,所有非碱性金属都将消失。

我尝试使用已经排序的元素创建表单,只需单击一下按钮,然后说“碱性金属”,将显示碱性金属表单,并隐藏旧表单。但我认为它丑陋而令人困惑。

所以我的计划是只需点击一下即可更改表单的布局,但我该怎么做?

4 个答案:

答案 0 :(得分:0)

如果我是你,我会做一些如此简单的事情,我会使用所有图片框创建周期表。

接下来,我会为每个图片框添加一个布尔值,就像你说的是否是碱性金属等。

我不确定你是否已经完成了Arrays,但这是最简单的方法,只需让数组中的每个bool与你表单上的每个图片框匹配。

所以要过滤它们你只需按一个按钮,然后通过bool数组,如果你看到一个设置为碱性金属,你将离开该picturebox.Visible =启用,如果它不是一个然后改变picturebox.Visible = false。

我真的认为这是一个低级别的第一年设计,这将是你能做的最好的事情,我不知道你的任何经验,但我不会创建多个表格我只是隐藏你不想要的图片框用上面的命令来看。

祝你好运,让我知道你是怎么过的。

答案 1 :(得分:0)

您可以在发生特定事件时更改表单的某些属性(例如宽度,高度)(单击按钮)。这意味着您可以通过单击按钮更改表单的大小。此外,您可以在表单中包含多个容器(groupbox,picturebox等),但可见属性设置为false,单击按钮时将其更改为true

答案 2 :(得分:0)

我不是专家,但正如一些已经指出的那样,最好的方法是将每个元素作为一个形式在一个表单中,将它们分组在一个数组中,例如alkalineMetals [] = {picMetal1,picMetal2,etc}; 然后,如果用户选择非碱性金属,您可以将pic属性设置为false:

        private void button1_Click(object sender, EventArgs e)
    {
        pictureBox1.Visible = false;
    }

答案 3 :(得分:0)

要使表格看起来像real periodic table,您不仅需要显示数据和/或图像。

您还需要存储每个的放置规则。

对于基本表,这些只是行和&列号;但是对于你想要创建的更灵活的显示器,你还需要更多,比如group-id,最好是可枚举。

要显示它们,您可以使用DataGridViewTableLayoutPanel

切换显示时,您将清除容器并开始填充属于您要在给定坐标处显示的组的所有元素。

您应该在ImageList中收集图像并通过将Labels分配给BackGroundImages的图像来创建ImageList

切换显示屏时是否需要遵循有关展示位置的额外规则?有一些,据我记得我的化学反应......

所以你应该首先创建一个class Element并给它一些属性,如int RowColumn以及imageIndexgroupID;那么enum ElementGroups { AlkalineMetals, NonAlkalineMetals.. };

然后使用必要的Checkboxes定义布局,以便显示或隐藏组。最后是容器,比如TableLayoutPanel,大到足以容纳所有元素..

要决定的另一件事是你是真的想要使用图片还是宁愿从数据动态创建元素显示。它通常只涉及2-4个字符串打印和背面颜色。没有火箭科学来画这个..

您是否已获得data