C# Winform작업을 하다가 처음보는 오류를 접했습니다

클래스 Form1은(는) 디자인 가능하지만 파일의 첫 번째 클래스가 아닙니다. Visual Studio에서 디자이너는 파일의 첫 번째 클래스를 사용해야 합니다. 파일에서 첫 번째 클래스가 되도록 해당 클래스 코드를 이동한 다음 디자이너를 다시 로드하십시오.

지금 폼을 2개를 만들어놓고 한쪽은 세팅용 창으로 만들어놓고 다른 한쪽은 세팅값을 기준으로 내용을 보여주는 프로그램을 만들어놨습니다.

Form1이 실행내용을 보여주는 창이고 Form2가 값을 설정해주는 창인데 Form2는 디자이너가 잘 열리는데 Form1은 문제가 있습니다. 이건 왜 이러는 걸까요? MSDN에는 관련 내용이 안나오는것 같은데 말이죠

좋아요 2

혹시 Form1에 어떤 오타가 있는게 아닐까요…? partial 클래스를 따로 만드셨다거나…

좋아요 1

이전까지 아주 잘되던 프로그램이고 저 에러만 뜨고 디자이너만 안될 뿐이지 다시 빌드해서 실행시켜 보니까 프로그램은 잘 되는거 봐서는 코드 문제는 아니고 디자이너가 꼬인듯 싶습니다.

좋아요 2

오류 메시지 그대로입니다. 디자인이 될 Form 클래스는 다른 클래스보다 먼저 위치해야 합니다. 가령 다음과 같이 Form 클래스 위에 다른 클래스를 정의하면,

using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public class MyType
    {
        public int Age;
    }

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}

이런 경우에도 그런 오류가 발생합니다. 가능한 Form C# 파일에는 다른 클래스의 정의를 함께 하지 마세요.

또는, (위의 경우 MyType) 방해가 되는 클래스를 Form1 이후에 정의를 하면 됩니다.

좋아요 4

아 그랬군요…저렇게 해본적이 없어서 몰랐네요…ㅎㅎ 오늘도 감사합니다!!

좋아요 1

이게 맞네요. 별도의 설정값을 저장하려고 클래스를 따로 만들어놨는데 이 클래스가 문제였습니다.

좋아요 2