C#Windows窗体应用程序使用下一个/上一个按钮显示/隐藏工具条

时间:2018-03-28 14:20:48

标签: c# controls

我不确定这是否可行,因为我是C#和Windows Forms应用程序的新手。我目前只有一个表格。在表单中我有flowLayoutPanel

在此面板中,我有toolStripMaintoolStrip0 [TabIndex 0]toolStrip1 [TabIndex 1]toolStrip2 [TabIndex2]toolStripMain始终可见,我有一个上一个按钮和下一个按钮。

表单加载时,toolStrip0可见,另外2个设置为Hide()。对于每次单击“下一步”,我想隐藏当前工具条,无论它是0,1还是2并显示下一个工具条,一旦它到达最后一个工具条,它就会重置并从0开始。

换句话说,对于每次单击“下一步”按钮,我需要当前工具条来隐藏并按顺序显示下一个条带。以下代码仅供1次点击。

private void forward_ButtonClick(object sender, EventArgs e)
    {
        toolStrip0.Hide();
        toolStrip1.Show();
    }

非常感谢任何正确方向的帮助或指示。

1 个答案:

答案 0 :(得分:0)

为什么不对toolstrip本身视而不见,而不是对某些前进/后退按钮进行盲注。看起来正确绑定的方法也是Toolstrip.ItemClicked事件。

基于docs

  

事件处理程序报告ItemClicked事件的出现次数

因此,当前点击的工具条项目将触发该事件。

public ToolStrip prevToolStripClicked = null;
...
...

private void ToolStrip1_ItemClicked(Object sender, ToolStripItemClickedEventArgs e) 
{
    if(prevToolStripClicked != null)
    {
        prevToolStripClicked.hide();
    }
    prevToolStripClicked = e.ClickedItem;
    e.ClickedItem.show(); // prevToolStripClicked.show();
}

跟踪上一个Toolstrip并检查ItemClicked事件,如果它不为空,表示没有点击任何内容,然后.hide()上一个按钮,然后将上一个按钮设置为当前和.show()它。

这可能有用,但我对C#并不熟悉。这似乎是一种明智的做法。