Compact Framework의 3.5 버전을 사용하고 Windows Mobile 6.5에서 실행되도록 기존 .NET Windows Mobile 응용 프로그램을 업그레이드했습니다. TreeView있는 폼이 있습니다. 각 노드에 확인란이 있도록 TreeView.Checkboxes 속성이 true로 설정됩니다. 이전 버전의 Windows Mobile에서도 문제없이 사용할 수 있습니다.트리 노드 Windows Mobile 6.5에서 실행되는 Compact Framework 3.5의 TreeView에서 동작 확인
그러나 버전 6.5에서는 확인란을 클릭하면 즉시 확인하고 선택을 취소 한 것처럼 보입니다. 그러나 AfterCheck 이벤트는 한 번만 발생합니다. 내가 수표를 얻을 수있는 유일한 방법은 그것을 두 번 클릭하는 것입니다 (이것은 잘못된 행동입니다).
이 동작을 본 사람이 있습니까? 누구든지 해결 방법을 알고 있습니까?
간단한 테스트 양식이 포함되어 있습니다. 이 양식을 Windows Mobile 6을 대상으로하는 Visual Studio 2008 스마트 장치 응용 프로그램으로 덤프하여 의미를 확인하십시오.
Public Class frmTree
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.new()
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
End Sub
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
Friend WithEvents TreeView1 As System.Windows.Forms.TreeView
Private mainMenu1 As System.Windows.Forms.MainMenu
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim TreeNode1 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node0")
Dim TreeNode2 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node2")
Dim TreeNode3 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node3")
Dim TreeNode4 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node4")
Dim TreeNode5 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node1")
Dim TreeNode6 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node5")
Dim TreeNode7 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node6")
Dim TreeNode8 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node7")
Me.mainMenu1 = New System.Windows.Forms.MainMenu
Me.TreeView1 = New System.Windows.Forms.TreeView
Me.SuspendLayout()
'
'TreeView1
'
Me.TreeView1.CheckBoxes = True
Me.TreeView1.Location = New System.Drawing.Point(37, 41)
Me.TreeView1.Name = "TreeView1"
TreeNode2.Text = "Node2"
TreeNode3.Text = "Node3"
TreeNode4.Text = "Node4"
TreeNode1.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode2, TreeNode3, TreeNode4})
TreeNode1.Text = "Node0"
TreeNode6.Text = "Node5"
TreeNode7.Text = "Node6"
TreeNode8.Text = "Node7"
TreeNode5.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode6, TreeNode7, TreeNode8})
TreeNode5.Text = "Node1"
Me.TreeView1.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode1, TreeNode5})
Me.TreeView1.Size = New System.Drawing.Size(171, 179)
Me.TreeView1.TabIndex = 0
'
'frmTree
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi
Me.AutoScroll = True
Me.ClientSize = New System.Drawing.Size(240, 268)
Me.Controls.Add(Me.TreeView1)
Me.Menu = Me.mainMenu1
Me.Name = "frmTree"
Me.Text = "frmTree"
Me.ResumeLayout(False)
End Sub
#End Region
End Class
MSDN 설명서의 WndProcHooker에 링크 된 CompactFramework 3.5에서 질문에 대한 질문이 컴파일되지 않습니다. –
"유형 또는 네임 스페이스 'Win32'를 찾을 수 없습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?)". 흠 ... 사용 또는 어셈블리 참조가 누락 되었다면 알고 싶습니다. 불행히도 MSDN의 코드는 지시문 사용 중 표시하지 않으며 사용 가능한 어셈블리 참조가 표시되는 다운로드 가능한 솔루션이 없습니다. . 게다가 전체 .NET Framework를위한 것이라고 생각합니다. 아마도 이것이 작동하지 않는 이유 일 것입니다. –
여기'Win32' 클래스가 컴파일 해주었습니다 : http://blogs.msdn.com/b/netcfteam/archive/2005/05/20/420551.aspx –