如何从另一个类在Form1中创建对象?

奥德留斯·布特库斯

我试图用C#编写程序,以从另一个类动态创建PictureBox。

在这里完成了什么:

在类Form1中创建另一个类的对象,并在该类中创建我想要的对象(许多PictureBox'es)的调用过程

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            //trying to draw NxM table 
            //where N is horizontal cell count M is vertical cell count
            Table tbl = new Table();
            tbl.Tablenm(9, 9);
        }
    }
}

类表代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;

namespace Lines_online
{
   public class Table : Form1
    {
        List<PictureBox> cell = new List<PictureBox>(); 
        public void Tablenm(int n, int m)
        {
            for (int i = 0; i < n*m; i++)
            {
                PictureBox pict = new PictureBox();
                cell.Add(pict);
                cell[i].Size = new Size(20, 20);
                cell[i].Location = new Point(30 + (i % n) * 19, 30 + (i / m) * 19);
                cell[i].Image = Properties.Resources.lang20x20;
                Controls.Add(cell[i]);
            }
        }
    }
}

然后执行代码,它什么也不做,也不给出任何错误(我认为它会在某处创建对象,但不是在Form1窗口中定义)。如果将类Table中的过程移至Form1类,则可以正常工作,但我想从其他类进行控制以减少Form1中的代码大小。我试图在类表中创建Form1对象:

Form1 frm1 = new Form1();

它没有帮助。我在做错什么,或者对这个问题使用不好的方法?

复杂

注意:在您的代码中,您将从Form1继承表。这确实意味着Table代表了一种新的形式,而不是对当前现有形式的引用,因此它什么也不做。

在原始表单的Controls属性中,您只是添加了另一种表单,这绝对不是您需要的行为。

我以您的代码为起点并对其进行了一些修改。我确实认为这应该起作用。

创建您的类Table,但不要继承Form1。使您的课程看起来像以下内容:

public class Table
{
    public List<PictureBox> Render(int n, int m)
    {
        List<PictureBox> returnList = new List<PictureBox>();

        for (int i = 0; i < n*m; i++)
        {
            PictureBox pict = new PictureBox();

            pict.Size = new Size(20, 20);
            pict.Location = new Point(30 + (i % n) * 19, 30 + (i / m) * 19);
            pict.Image = Properties.Resources.lang20x20;

            returnList.Add(pict);
        }

        return returnList;
    }
}

然后,以您的主要形式,可以调用您的方法:

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

    private void Form1_Load(object sender, EventArgs e)
    {
        var table = new Table();
        IEnumerable<Control> controls = table.Render(10, 10);

        foreach (var control in controls)
        { this.Controls.Add(control); }
    }
}

我认为应该可以,但尚未测试。另请注意,此代码未优化。您应该将参数传递给函数,以使其更通用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访问在另一个类中创建的对象

来自分类Dev

如何创建一个类,使其对象之一与VB中另一个类的类型相同?

来自分类Dev

如何创建一个类,使其对象之一与VB中另一个类的类型相同?

来自分类Dev

java - 如何在另一个类中创建一个类的对象,反之亦然?

来自分类Dev

如何访问在属于另一个类的静态对象中创建的列表?

来自分类Dev

你如何创建一个使用另一个类的变量的java对象?

来自分类Dev

在另一个类中创建一个类的对象,在UML类图中是什么关系?

来自分类Dev

如何通过创建另一个类的对象的类访问方法?

来自分类Dev

如何创建在模块内部并继承了另一个类的类的对象?

来自分类Dev

如何链接到类类型创建另一个类类型的对象

来自分类Dev

创建另一个类python的对象

来自分类Dev

用另一个类创建新对象

来自分类Dev

检查数组列表中的项是否是另一个类中创建的对象的实例

来自分类Dev

检查数组列表中的项目是否是另一个类中创建的对象的实例

来自分类Dev

在不不断创建新对象的情况下,如何在php中从另一个类调用一个类?

来自分类Dev

从JavaScript中的另一个对象创建对象

来自分类Dev

在另一个对象中创建的模拟对象

来自分类Dev

如何获取一个类对象以在C#中存储另一个类对象?

来自分类Dev

使用另一个包中的默认访问修饰符创建类的对象

来自分类Dev

在另一个类中创建对象(无继承)

来自分类Dev

在另一个类中创建内部类对象的数组

来自分类Dev

在另一个类中创建的paintComponent对象上绘图

来自分类Dev

在PHP中创建另一个类的对象的正确方法是什么?

来自分类Dev

在对象的另一个类中创建实例

来自分类Dev

在另一个类中创建的对象的C ++数组

来自分类Dev

是否在考虑组合的方法中从另一个类创建对象

来自分类Dev

Python将对象创建附加到另一个类中的列表

来自分类Dev

如何在另一个类中创建导入的类的实例

来自分类Dev

如何在实例化时在新类中创建另一个类的实例?

Related 相关文章

  1. 1

    访问在另一个类中创建的对象

  2. 2

    如何创建一个类,使其对象之一与VB中另一个类的类型相同?

  3. 3

    如何创建一个类,使其对象之一与VB中另一个类的类型相同?

  4. 4

    java - 如何在另一个类中创建一个类的对象,反之亦然?

  5. 5

    如何访问在属于另一个类的静态对象中创建的列表?

  6. 6

    你如何创建一个使用另一个类的变量的java对象?

  7. 7

    在另一个类中创建一个类的对象,在UML类图中是什么关系?

  8. 8

    如何通过创建另一个类的对象的类访问方法?

  9. 9

    如何创建在模块内部并继承了另一个类的类的对象?

  10. 10

    如何链接到类类型创建另一个类类型的对象

  11. 11

    创建另一个类python的对象

  12. 12

    用另一个类创建新对象

  13. 13

    检查数组列表中的项是否是另一个类中创建的对象的实例

  14. 14

    检查数组列表中的项目是否是另一个类中创建的对象的实例

  15. 15

    在不不断创建新对象的情况下,如何在php中从另一个类调用一个类?

  16. 16

    从JavaScript中的另一个对象创建对象

  17. 17

    在另一个对象中创建的模拟对象

  18. 18

    如何获取一个类对象以在C#中存储另一个类对象?

  19. 19

    使用另一个包中的默认访问修饰符创建类的对象

  20. 20

    在另一个类中创建对象(无继承)

  21. 21

    在另一个类中创建内部类对象的数组

  22. 22

    在另一个类中创建的paintComponent对象上绘图

  23. 23

    在PHP中创建另一个类的对象的正确方法是什么?

  24. 24

    在对象的另一个类中创建实例

  25. 25

    在另一个类中创建的对象的C ++数组

  26. 26

    是否在考虑组合的方法中从另一个类创建对象

  27. 27

    Python将对象创建附加到另一个类中的列表

  28. 28

    如何在另一个类中创建导入的类的实例

  29. 29

    如何在实例化时在新类中创建另一个类的实例?

热门标签

归档