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

Windows窗体运行后无内容显示,请求技术支持

问题:WinForms窗体启动后为空,按钮未显示

我已经完成了全部代码编写,启动程序后Windows窗体可正常启动,但窗体为空,本应显示的单元格按钮未出现,无任何内容显示。

以下是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public const int mapSize = 8;
        public const int cellSize = 50;

        public int[,] map = new int[mapSize, mapSize];

        public Button[,] buttons = new Button[mapSize, mapSize];


        public Form1()
        {
            InitializeComponent();
        }

        private void Init()
        {
            ConfigureMapSize();
            InitMap();
            InitButtons();
        }
        
        private void ConfigureMapSize()
        {
            this.Width = mapSize * cellSize + 20;
            this.Height = (mapSize +1) * cellSize;
        }

        private void InitMap()
        {
            for(int i = 0; i < mapSize; i++)
            {
                for (int j = 0; j < mapSize; j++)
                {
                    map[i, j] = 0;
                }
            }
        }

        private void InitButtons()
        {
            for (int i = 0; i < mapSize; i++)
            {
                for (int j = 0; j < mapSize; j++)
                {
                    Button button = new Button();
                    button.Location = new Point(j * cellSize, i * cellSize);
                    button.Size = new Size(cellSize, cellSize);
                    this.Controls.Add(button);
                    buttons[i, j] = button;
                }
            }
        }
    }
}

解决方案

你的核心问题是**Init()方法从未被调用**——这个方法包含了配置窗体尺寸、初始化按钮的关键逻辑,但你只在构造函数里执行了InitializeComponent(),没有触发Init(),导致按钮根本没被创建并添加到窗体中。

修复步骤:

  1. 在Form1的构造函数里,InitializeComponent()之后添加Init()调用:
public Form1()
{
    InitializeComponent();
    Init(); // 新增这一行
}
  1. (可选)为了直观验证按钮是否显示,可以在InitButtons()里给按钮添加文本标识:
button.Text = $"{i},{j}";

修改后重新运行程序,就能看到8x8的按钮网格正常显示在窗体里了。

内容的提问来源于stack exchange,提问作者Makarov Alex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:10:19