문제

무료 맞춤법 검사 솔루션을 찾고, 나는 이것을하는 데 너무 똑똑하다고 생각했지만 나는 그렇지 않습니다.

Windows 양식 기반 응용 프로그램을 만들었으며 양식을 패널에 사용자 지정된 사용자 컨트롤 (텍스트 상자 포함)을 추가 할 수 있습니다. 그런 다음 사용자는 일부 버튼을 클릭하면이 패널의 컨트롤이 지워지고 새 패널이 추가됩니다. 사용자는 무언가를하고 프로세스가 반복됩니다. 이제이 텍스트 상자가 맞춤법 검사를 지원하기를 원했고 무료 솔루션을 찾았습니다.

WPF 텍스트 상자는 정기적 인 승리 양식이없는 위치 검사를 지원합니다. 나는이 WPF 텍스트 상자를 패널 내에서 ElementHost 객체에 추가하여 사용할 수 있다고 생각했다. 이 패널은 사용자 컨트롤입니다.

따라서 응용 프로그램에서 이러한 사용자 컨트롤 인스턴스를 양식에 추가하고 .NET의 맞춤법 검사 장점을 사용할 수 있습니다. 이것은 실제로 효과가 있었지만 응용 프로그램을 잠시 동안 사용한 후에는 메모리 오류가 발생하여 응용 프로그램이 결국 나에게 얼어 붙을 것임을 발견했습니다. 이 문제는 일반 텍스트 상자에서 발생하지 않기 때문에 이러한 WPF 컨트롤에 대한 메모리 오류를 정확히 찾았습니다.

창이 열리고 컨트롤 수가 지정되면 컨트롤이 추가되는 방법입니다.

Dim xOffset As Integer = 0
For i As Integer = 0 To theNumber
    Dim myUserControl As New SpecialUserControl()
    myPanel.Controls.Add(myUserControl)
    myUserControl.Location = New Point(7, 7)
    myUserControl.Location = New Point(xOffset, 7)
    xOffset = xOffset + 207
Next

주목하십시오 :

  • Mypanel은 양식의 패널입니다
  • SpecialUserControl은 WPF TextBox (ElementHost 개체 내)를 사용한 사용자 컨트롤입니다.

사용자가 버튼을 누르면 패널이 지워집니다.

myUserControl.Controls.Clear()

그런 다음 사용자는 프로세스를 반복 할 수 있습니다.

솔루션을 찾으려고했을 때 인터넷에 많은 결과가 있으며, 내가 가진 문제는 패널을 지우린 후에도 WPF 컨트롤이 사라지지 않기 때문이라고 생각합니다. 이 결론에 따라, 나는 이러한 컨트롤을 처분하거나이를 메모리 문제를 계속 설정하는 것과 관련하여 다른 솔루션을 시도했습니다. 누군가가 나에게 조언이나 아이디어를 줄 수 있다면 정말 감사합니다.

도움이 되었습니까?

해결책

나는 이것이 이러한 사용자 컨트롤이 수집 할 수있는 것보다 빠르게 생성되고 있다는 사실 때문일 수 있다고 결정했습니다. 필요하지 않은 경우 이러한 특별한 사용자 컨트롤을 생성하지 않도록 프로그램을 변경했습니다. 이 프로그램은보다 관리하기 쉬운 수의 WPF 컨트롤과 함께 잘 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top