嘿所以我试图创建一个表单,其中有一个按钮(作为标签)在一侧按下按钮时显示特定控件,当按下另一个按钮时,显示另一组。
我已经让这个工作得很好但是我在创建第二组控件时遇到了一个问题,我将如何在当前控件的基础上绘制它们(在设计器中)(它很好在运行期间)?所以我的问题是,我怎样才能做到这一点。当前(可能)重要的代码:
private void CheatButton_Click(object sender, EventArgs e)
{
CheatControls(true);
ColorControls(false);
CheatButton.Normalcolor = Color.FromArgb(51, 51, 51);
ColorButton.Normalcolor = Color.FromArgb(61, 61, 61);
}
private void ColorButton_Click(object sender, EventArgs e)
{
CheatControls(false);
ColorControls(true);
CheatButton.Normalcolor = Color.FromArgb(61, 61, 61);
ColorButton.Normalcolor = Color.FromArgb(51, 51, 51);
}
private void CheatControls(bool b)
{
TriggerSwitch.Visible = b;
TriggerLabel.Visible = b;
BhopSwitch.Visible = b;
BhopLabel.Visible = b;
GlowSwitch.Visible = b;
GlowLabel.Visible = b;
RecoilSwitch.Visible = b;
RecoilLabel.Visible = b;
}
private void ColorControls(bool c)
{
}
答案 0 :(得分:2)
将所有作弊控件放在自定义UserControl
中,将所有颜色控件放在不同的自定义UserControl
中。您可以在设计器中轻松编辑不同的控件集,在代码中,您可以通过设置适当的UserControl
可见性而不是单独设置一组控件的可见性来更轻松地隐藏/显示它们。这是创建UserControl
:msdn.microsoft.com/en-us/library/aa302342.aspx
在Visual Studio中创建UserControl
时,可以使用设计器向其添加控件。在带有选项卡按钮的表单中,您将添加您创建的两个UserControl
的实例。由于UserControl
派生自Control
,因此它具有Visible
属性。因此,在您的CheatControls(bool b)
方法中,您的实施将简化为_myCheatControls.Visible = b;
。我没有看过整件事,但这段视频也可能有所帮助:youtube.com/watch?v=l5L_q_jI494
答案 1 :(得分:0)
你可以使用 XanderUI
只需添加一个SuperButton(充当一个标签按钮),当它点击时显示一个包含控件的面板
EG -
private void ShowControlSet(int ControlSet)
{
panel1.visible = false;
panel2.visible = false;
if (ControlSet == 1) panel1.visible = true;
if (ControlSet == 2) panel2.visible = true;
}
// To show a panel use
ShowControlSet(1);
您也可以使用BringToFront()
而不是让每个面板不可见/可见,但您需要正确锚定或停靠面板
答案 2 :(得分:-1)
除了可见性之外,您可以做的是获取按钮的位置并在隐藏和显示其他按钮时显示它们
只需设置顶部和左侧位置,确保按钮大小相同。