You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

登录成功后调用Form2.Show()报错:属性访问需赋值或使用其值

解决WinForms登录后无法显示第二个窗体的问题

嘿,这个问题我之前帮不少新手排查过,其实核心原因很简单——你没先创建Form2的实例就直接调用Show()方法啦!

错误根源解释

在WinForms框架里,Form2是一个窗体类,而Show()是属于窗体实例的方法(不是静态方法)。如果你直接写Form2.Show(),编译器会误认为你在访问一个名为Show的属性,而不是调用方法,所以才会抛出那个「Property access must assign to the property or use its value」的错误。

正确解决方案

你需要先创建Form2的对象实例,再调用它的Show()方法,步骤如下:

  1. 在登录按钮的点击事件中,先实例化Form2:
    Form2 mySecondForm = new Form2();
    
  2. 调用实例的Show()方法显示窗体:
    mySecondForm.Show();
    

完整的按钮点击事件示例代码

private void btnLogin_Click(object sender, EventArgs e)
{
    // 这里是你的用户名密码验证逻辑
    bool isLoginValid = (txtUsername.Text == "yourUsername" && txtPassword.Text == "yourPassword");

    if (isLoginValid)
    {
        // 创建Form2实例并显示
        Form2 dashboardForm = new Form2();
        dashboardForm.Show();

        // 可选:如果想隐藏当前登录窗体,添加下面的代码
        // this.Hide();
        // 或者直接关闭登录窗体(如果不需要再返回)
        // this.Close();
    }
    else
    {
        MessageBox.Show("用户名或密码错误,请重试!");
    }
}

额外小提示

  • 如果你希望第二个窗体弹出后,登录窗体无法被操作(模态对话框),可以把Show()换成ShowDialog():
    dashboardForm.ShowDialog();
    
  • 确保你的项目中确实存在Form2这个窗体类,没有拼写错误,且和当前窗体在同一个命名空间下。

内容的提问来源于stack exchange,提问作者Joshua Pangilinan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:26:51