C#按钮文本和调整大小

C#按钮文本和调整大小,c#,C#,我有一个简单的按钮,单击该按钮时,应该将文本从“帮助”更改为“隐藏”,并更改windows窗体的大小。我的问题是它找不到if语句。它看不到按钮3。文本帮助或隐藏。有什么建议吗 private void button2_Click(object sender, EventArgs e) { string helpstring = "Help"; string hidestring = "Hide"; if (button3.Text == helps

我有一个简单的按钮,单击该按钮时,应该将文本从“帮助”更改为“隐藏”,并更改windows窗体的大小。我的问题是它找不到if语句。它看不到按钮3。文本帮助或隐藏。有什么建议吗

private void button2_Click(object sender, EventArgs e)
{
        string helpstring = "Help";
        string hidestring = "Hide";
        if (button3.Text == helpstring)
        {
            button3.Text = hidestring;
            Size = new System.Drawing.Size(1106, 563);
        }
        if (button3.Text == "Hide")
        {
            Size = new System.Drawing.Size(586, 563);
            button3.Text = helpstring;
        }
    }

看起来你的钮扣错了

处理程序名为button2\u Click,但代码访问button3。
这就是为什么你应该总是给你的控件命名

您的问题可能是按钮3以一个既不是
帮助也不是
隐藏的
文本开始。因此,无论是
if
语句都不会起任何作用

您应该在函数中设置一个断点(单击一行代码旁边左侧的栏),然后将鼠标移到
按钮3.Text
上,看看它实际上等于什么

但是,如果按钮的文本为
Help
,则不会发生任何事情。如前所述,您没有
else
子句

因此,您的代码将看到按钮的文本为
Help
,并将其更改为
Hide


但是,下一个
if
语句将看到按钮的文本现在是
Hide
,并将其更改回
Help

,看起来您的按钮有误

处理程序名为button2\u Click,但代码访问button3。
这就是为什么你应该总是给你的控件命名

您的问题可能是按钮3以一个既不是
帮助也不是
隐藏的
文本开始。因此,无论是
if
语句都不会起任何作用

您应该在函数中设置一个断点(单击一行代码旁边左侧的栏),然后将鼠标移到
按钮3.Text
上,看看它实际上等于什么

但是,如果按钮的文本为
Help
,则不会发生任何事情。如前所述,您没有
else
子句

因此,您的代码将看到按钮的文本为
Help
,并将其更改为
Hide


但是,下一个
if
语句将看到按钮的文本现在是
Hide
,并将其更改回
Help

为什么不在方法的开头设置一个断点,看看按钮3.text的值是多少


我猜您的事件没有正确连接,代码甚至没有被执行。

为什么不在方法的开头设置一个断点,看看button3.Text的值是多少

我猜您的事件没有正确连接,代码甚至没有被执行。

您忘记了一个“else”。这应该起作用:

private void button2_Click(object sender, EventArgs e)
{
    string helpstring = "Help";
    string hidestring = "Hide";
    if (button3.Text == helpstring)
    {
        button3.Text = hidestring;
        Size = new System.Drawing.Size(1106, 563);
    }
    else if (button3.Text == "Hide") //this is where you should put an else
    {
        Size = new System.Drawing.Size(586, 563);
        button3.Text = helpstring;
    }
}
你忘了一个“else”。这应该起作用:

private void button2_Click(object sender, EventArgs e)
{
    string helpstring = "Help";
    string hidestring = "Hide";
    if (button3.Text == helpstring)
    {
        button3.Text = hidestring;
        Size = new System.Drawing.Size(1106, 563);
    }
    else if (button3.Text == "Hide") //this is where you should put an else
    {
        Size = new System.Drawing.Size(586, 563);
        button3.Text = helpstring;
    }
}

你有两个平行的“如果”。将执行第一个块,将按钮文本更改为“隐藏”。然后,第二个也将执行,将文本改回“Help”


改用else块。

您有两个并行的ifs。将执行第一个块,将按钮文本更改为“隐藏”。然后,第二个也将执行,将文本改回“Help”


请改用else块。

按钮文本中是否有符号(例如&Help或&Hide),以便用户使用键盘快捷键?如果是,文本属性将不相等。

按钮的文本中是否有符号和(例如&Help或&Hide),以便用户可以使用键盘快捷键?如果是这样,text属性将不相等。

此代码有几个问题

首先,请确保按钮的单击事件正确地连接到
按钮2\u click
处理程序,因为方法名称和方法中引用的对象之间似乎存在一些差异。出于可读性的考虑,这些文件的命名应该是固定的

其次,您的代码使用两个
if
语句,而不是
if…else
语句。如果代码中的第一个条件为真,则第一个
If
中的代码将导致第二个
If
中的条件为真,从而将所有内容恢复为原始条件

代码应为(包括重命名方法):


注意:如果这是仅有的两种可能的情况,则不需要第二种
,简单的
else
将提高性能并达到预期效果。

此代码存在一些问题

首先,请确保按钮的单击事件正确地连接到
按钮2\u click
处理程序,因为方法名称和方法中引用的对象之间似乎存在一些差异。出于可读性的考虑,这些文件的命名应该是固定的

其次,您的代码使用两个
if
语句,而不是
if…else
语句。如果代码中的第一个条件为真,则第一个
If
中的代码将导致第二个
If
中的条件为真,从而将所有内容恢复为原始条件

代码应为(包括重命名方法):


注意:如果这是仅有的两种可能的情况,则不需要第二次
,一次简单的
else
将提高性能并达到预期效果。

观察一下,您正在尝试更改一个名为button3的按钮,您的处理程序方法名为button2\u Click。您没有意外地为错误的按钮编写处理程序?只是观察一下,您正在尝试更改一个名为button3的按钮,您的处理程序方法名为button2\u Click。您没有意外地为错误的按钮编写处理程序?如果您调试此方法(没有“else”),执行将同时进入“If”状态,这就是为什么看起来什么都没有发生。事实上