类帮助 - C#改变类中的对象

时间:2014-09-01 09:22:20

标签: c# class object

我是C#的新手,但是对OOP来说更新。我继续从我的数独游戏开始,我创建了一个继承自Textbox的课程。

我将这个类命名为'TextGrid'并从这些对象中创建了我的Sudoku Grid。这是班级:

public class TextGrid : System.Windows.Forms.TextBox 
{
    // Default Constructor
    public TextGrid()
    { Clue = false; }


    // Overloader Constructor

    public TextGrid(bool NewClue)
    { Clue = NewClue; }


    // Accessor Functions

    public int FindBox(Double Rowcol)
    {
        try
        {
            return Convert.ToInt32(Math.Ceiling((Rowcol + 1) / 3));
        }
        catch
        {
            return 0;
        }
    }

    public bool IsCorrect()
    { return Correct; }

    public bool IsPossible()
    { return Possible;  }


    // mutator Functions

    public bool IsClue
    {
        get { return Clue; }
        set { Clue = value; }
    }

    protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
    {
        base.OnKeyPress(e);
        if (((char.IsDigit(e.KeyChar)) || (e.KeyChar == ' ')) && e.KeyChar != '0') 
        {
            this.Text = Convert.ToString(e.KeyChar);
        }
        else if (e.KeyChar == '0' || e.KeyChar == '\b') 
        {
            e.Handled = true;
            this.Text = "";
        }
        else
        {
            e.Handled = true;
        }
    }


    private bool CheckCorrect()
    {
        return false;
    }

    // Member Variables
    private bool Clue;
    private bool Correct;
    private bool Possible;
}

GridText对象作为2D数组的一部分添加,然后将其放到表单上。

在Sudoku游戏的上下文中,我希望每个对象都存储该特定文本框的“可能”值。为此,我需要将该特定“文本框”值与同一行/列/ 3x3框中的所有其他文本框进行比较。

据我所知,我能做到的唯一方法就是在表格中设置那些可能的值(而不是在课堂上。我认为在课堂上不可能这样做因为它不知道哪些对象已被制作?)。如果有人知道做类似事情的方法或只是一种有效的方法(而不是每次点击其中一个时检查/更改每个文本框的属性),我会很高兴听到。

如果您需要任何额外信息,我会将其添加进去。抱歉,如果我说的话没有多大意义,但我只是想学习我能做什么,不能在课堂上做什么。

0 个答案:

没有答案