Class의 배열을 다른 폼에서 출력하는 방법

안녕하세요 저는 주기율표를 만들고 있는데 원소기호, 원자량등을 그냥 form에다가 같이 넣으면 코드가 더러워질 것 같아서 elemetClass 클래스를 하나 만들어서 거기에다가 모든 정보를 저장한 뒤 Form에서 꺼내쓰고 싶으데요…
public void elementSymbol(int num)
{
string[] symbol = new string[] { “H”, “He”, “Li”, “Be” };
string symbolLabel = symbol[num];
}
이렇게 해서 배열을 만들었는데
symbolLabel이라는 것을 mainForm에서 출력을 하고 싶은데 어떻게 해야 하나요?

1개의 좋아요
class ElementClass
{
    public string elementSymbol(int num)
    {
        string[] symbol = new string[] { "H", "He", "Li", "Be" };
        return symbol[num];
    }
}
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    string element = "";

    private void Form1_Load(object sender, EventArgs e)
    {
        ElementClass ec = new ElementClass();
        element = ec.elementSymbol(2);
        label1.Text = element;
    }
}

이렇게 하시면 될 것 같습니다.

6개의 좋아요

친절한 설명 감사합니다!^^ 도움이 많이 되었습니다!

1개의 좋아요

근데 혹시 Form1_Load 말고 클릭 했을 때는 어떻게 하나요?
private void H_Click(object sender, EventArgs e)
{
element = ec.elementSymbol(0);
elements.Text = element;
elements.ShowDialog();

    }

이렇게 했을때 ec.elementSymbol(0) 부분이 에러가 나네요 ㅠㅠ

1개의 좋아요
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        ElementClass ec = new ElementClass();
        string element = "";
       
        private void btnMsg_Click(object sender, EventArgs e)
        {
            element = ec.elementSymbol(2);
            MessageBox.Show(element, "원소", MessageBoxButtons.OK);
        }
    }

대충 이런 식으로 구현 가능합니다.

2개의 좋아요

elements.Text = element;
메세지 박스말고 label에 넣을 수는 없나요?? 계속 질문해서 죄송해요ㅠㅠ
element = ec.elementSymbol(2);
이때 void형식을 암묵적으로 string 형식으로 변환할 수 없습니다. 라고 뜹니다…

1개의 좋아요
class ElementClass
    {
        public string elementSymbol(int num)
        {
            string[] symbol = new string[] { "H", "He", "Li", "Be" };
            return symbol[num];
        }
    }
using System;
using System.Windows.Forms;

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

    string element = "";
    ElementClass ec = new ElementClass();

    private void btnMsg_Click(object sender, EventArgs e)
    {
        element = ec.elementSymbol(2);
        label1.Text = element;
    }
}

v1
v2

3개의 좋아요

마지막으로 여쭤볼 것이 있는데… Table 클래스에서 Element클래스의 라벨에 접근할 수 있나요? Table에서 Element의 Label.text를 사용할 수 있나요?

1개의 좋아요