입니다. 다른 컨트롤 (TxTextControl)에서 상속하는 컨트롤이 있습니다. 내 컨트롤이 해당 속성을 사용하여 인터페이스를 구현하기 때문에 분명히 필요한 기본 SelectedText 속성을 기본으로 감싸는 SelectedText 속성이 있습니다. 이 코드는 다음과 같습니다.개체에 대한 폼의 디자인 타임 오류가
public string SelectedText
{
get
{
return base.Selection.Text; // Error here (#1042)
}
set
{
if (base.Selection == null)
{
base.Selection = new TXTextControl.Selection(0, 0);
}
base.Selection.Text = value;
}
}
이 컨트롤을 폼에 드롭하면 아무런 문제가 없습니다. 컴파일되고 실행됩니다. 모든게 훌륭해.
Object reference not set to an instance of an object.
1. Hide Call Stackat Test.FormattedTextBox2.get_SelectedText() in C:\Projects\Test\FormattedTextBox2.cs:line 1042
누구나 무슨 일이 일어나고 있는지 알고 내가 저장할 때, 가까운 다음 폼을 다시 폼 디자이너는이 오류를 보여줍니다? 나는 마지막 머리카락을 꺼내려고하고있다 ...
업데이트 :
darkassisin93의 대답은 정확하지 않았지만, 내 게시 된 코드가 정확하지 않았기 때문에 그랬다. 해당 객체의 속성에 액세스하려고 시도하기 전에 base.Selection이 null인지 테스트해야했습니다. 어쨌든 그 대답은 저를 올바른 방향으로 이끌었습니다. 여기에 실제 솔루션입니다 : 그것은 기본 클래스의 SelectedText
속성이 null로 설정되어 있기 때문에 가장 가능성이 높습니다
return base.SelectedText ?? string.Empty;
와
return base.SelectedText;
를 교체
public string SelectedText
{
get
{
string selected = string.Empty;
if (base.Selection != null)
{
selected = base.Selection.Text;
}
return selected;
}
set
{
if (base.Selection == null)
{
base.Selection = new TXTextControl.Selection(0, 0);
// Have to check here again..this apparently still
// results in a null in some cases.
if (base.Selection == null) return;
}
base.Selection.Text = value;
}
}
FormattedTextBox2.cs의 내용, 특히 1042 줄을 게시 할 수 있습니까? –
게시 된 코드와 관련된 오류가 있었음을 나타내는 질문이 업데이트되어 회선이 발생했습니다. –