TextBox не обновляется при изменении свойства - PullRequest
0 голосов
/ 14 марта 2012

Я новичок в WinForms и C # в целом, однако проблема, с которой я столкнулся, настолько проста, что даже удивляет меня.У меня есть небольшой UserControl, который содержит 3 текстовых поля, чтобы можно было отображать вектор в трехмерном пространстве.Элемент управления имеет свойство, которое позволяет потребителю устанавливать вектор, отображаемый элементом управления.

    /// <summary>
    /// Read/Write property to set the displayed vector.
    /// </summary>
    public Vector3 Vector
    {
        get { return m_vector; }
        set
        {
            m_vector = value;
            string val = Convert.ToString(m_vector.X);
            txtX.Text = val;
            txtY.Text = Convert.ToString(m_vector.Y);
            txtZ.Text = Convert.ToString(m_vector.Z);
        }
    }

Вы заметите, что я отделил преобразование от фактического присвоения свойства text для целей отладки.В любом случае, val содержит именно то, что он должен.Проверка txtX в отладчике показывает, что он был установлен правильно.Однако значение никогда не обновляется на экране.

Очень мало делается для инициализации TextBox, кроме установки позиции, размера и имени.Все это было сделано в конструкторе Visual Studio.Кто-нибудь может указать, что я могу делать неправильно?

РЕДАКТИРОВАТЬ: Добавление кода вызова.

public override void LeftDrag(float deltaX, float deltaY)
    {
        float length = 2 * (Eye - Center).Length * (float)Math.Tan(FOVy / 2.0);

        Vector3 lookAt = Center - Eye;
        Vector3 dirY = Vector3.Cross(Up, lookAt);
        dirY.Normalize();

        Center += deltaY * length * Up;
        Center += deltaX * length * Width / Height * dirY;
    }

1 Ответ

0 голосов
/ 14 марта 2012

Не знаю, установил ли OpenTK в своей перегрузке оператора + свойство Vector. Однако мы могли легко найти. При выполнении вызывающего кода установите точку останова на установщике и посмотрите, остановится ли отладка на точке останова. Если это не так, вы должны где-нибудь в своем вызывающем коде установить свойство Vector, чтобы вызывался установщик.

Что-то вроде

Vector3 lookAt = Center - Eye;
lookAt.Vector = Center - Eye;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...