저는 일반적으로 WinForms와 C#에 익숙하지 않지만, 내가 가지고있는 문제는 너무 기본적인 것입니다. 내가 가진 것은 3-D 공간의 벡터를 표시 할 수 있도록 3 개의 텍스트 상자를 포함하는 작은 UserControl입니다. 컨트롤에는 소비자가 컨트롤에 의해 표시되는 Vector를 설정할 수있는 속성이 있습니다.TextBox가 속성 변경시 업데이트되지 않습니다.
/// <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);
}
}
디버깅 목적으로 텍스트 속성의 실제 할당에서 변환을 분리했음을 알 수 있습니다. 어쨌든, val에는 정확히 무엇이 있어야합니다. 디버거에서 txtX를 검사하면 제대로 설정되었음을 알 수 있습니다. 그러나이 값은 화면에서 업데이트되지 않습니다.
위치, 크기 및 이름 설정 이외의 TextBox를 초기화하는 데 필요한 작업은 거의 수행되지 않습니다. 이것은 모두 Visual Studio 디자이너에서 수행되었습니다. 누군가 내가 잘못하고있는 것을 지적 할 수 있습니까?
EDIT : 호출 코드 추가.
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;
}
같은
는뭔가. 텍스트 상자가 다른 곳에서 업데이트되지 않았습니까? – Steve
아니요, Text 속성을 업데이트하는 유일한 방법은 내가 본 속성을 사용하는 것입니다. 나는 잘못된 입력이 진행되지 않았는지 확인하기 위해 중단 점을 설정했으며 이것이 잘못된 것처럼 보입니다. – ctartamella
아마도 호출 코드의 일부가 업데이트를 방해합니다. 호출 메소드를 보여줄 수 있습니까? – Steve