Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell - 2 x Listbox - synchron scrollen

Mitglied: internet2107

internet2107 (Level 1) - Jetzt verbinden

25.10.2017 um 11:12 Uhr, 539 Aufrufe, 4 Kommentare, 1 Danke

Hallo,

ist es möglich 2 getrennte Listboxen synchron zu scrollen?
Hat jemand so etwas vielleicht im Einsatz?
Mitglied: H41mSh1C0R
25.10.2017 um 11:16 Uhr
Moin,

sollte schon gehen.

Füge bei dem Event für das Scrollen bei einer Box das Scrollen der 2ten Box ein.

VG
Bitte warten ..
Mitglied: colinardo
LÖSUNG 25.10.2017, aktualisiert um 18:19 Uhr
Servus zusammen.
Zitat von H41mSh1C0R:
Füge bei dem Event für das Scrollen bei einer Box das Scrollen der 2ten Box ein.
Ja, wenn es solch ein Event "out of the box" für das Listbox-Control (Windows-Forms) gäbe wäre es nicht weiter schlimm . Aber für sowas gibt es ja das Windows Message API mit dem wir solche Scroll-Events abfangen können.
Schreiben wir und einfach eine abgeleitete Klasse von ListBox welche ein Scroll-Event abfängt und zur Verfügung stellt. Das können wir dann wie gewohnt nutzen und im Event für die eine Listbox die TopIndex Eigenschaft der anderen ListBox festlegen, und umgekehrt.

Bidde:
01.
Add-Type -MemberDefinition @'
02.
Public Class MyListBox
03.
    Inherits ListBox
04.
    Public Delegate Sub MyListBoxScrollDelegate(Sender As Object, e As MyListBoxScrollArgs)
05.
    Public Event Scroll As MyListBoxScrollDelegate
06.
    ' WM_VSCROLL constants
07.
    Private Const WM_VSCROLL As Integer = &H115
08.
    Private Const SB_THUMBTRACK As Integer = 5
09.
    Private Const SB_ENDSCROLL As Integer = 8
10.
    Protected Overrides Sub WndProc(ByRef m As Message)
11.
    	' Trap the WM_VSCROLL message to generate the Scroll event
12.
    	MyBase.WndProc(m)
13.
    	If m.Msg = WM_VSCROLL Then
14.
    		Dim nfy As Integer = m.WParam.ToInt32() And &Hffff
15.
    		If (nfy = SB_THUMBTRACK OrElse nfy = SB_ENDSCROLL) Then
16.
    			RaiseEvent Scroll(Me, New MyListBoxScrollArgs(Me.TopIndex, nfy = SB_THUMBTRACK))
17.
    		End If
18.
    	End If
19.
    End Sub
20.
    Public Class MyListBoxScrollArgs
21.
    	Private mTop As Integer
22.
    	Private mTracking As Boolean
23.
    	Public Sub New(top As Integer, tracking As Boolean)
24.
    		mTop = top
25.
    		mTracking = tracking
26.
    	End Sub
27.
    	Public ReadOnly Property Top() As Integer
28.
    		Get
29.
    			Return mTop
30.
    		End Get
31.
    	End Property
32.
    	Public ReadOnly Property Tracking() As Boolean
33.
    		Get
34.
    			Return mTracking
35.
    		End Get
36.
    	End Property
37.
    End Class
38.
End Class
39.
'@ -name tools -Namespace Win32 -Language VisualBasic -ReferencedAssemblies "System.Windows.Forms" -UsingNamespace "System.Windows.Forms" -EA SilentlyContinue
40.

41.

42.
function GenerateForm {
43.

44.
#region Import the Assemblies
45.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
46.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
47.
#endregion
48.

49.
#region Generated Form Objects
50.
$form1 = New-Object System.Windows.Forms.Form
51.
$listBox2 = New-Object Win32.tools+MyListBox
52.
$listBox1 = New-Object Win32.tools+MyListBox
53.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
54.
#endregion Generated Form Objects
55.

56.
#region Generated Form Code
57.
$System_Drawing_Size = New-Object System.Drawing.Size
58.
$System_Drawing_Size.Height = 196
59.
$System_Drawing_Size.Width = 334
60.
$form1.ClientSize = $System_Drawing_Size
61.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
62.
$form1.FormBorderStyle = 3
63.
$form1.MaximizeBox = $False
64.
$form1.MinimizeBox = $False
65.
$form1.Name = "form1"
66.
$form1.Text = "Synced Scrolling"
67.

68.
$listBox2.DataBindings.DefaultDataSourceUpdateMode = 0
69.
$listBox2.FormattingEnabled = $True
70.
$System_Drawing_Point = New-Object System.Drawing.Point
71.
$System_Drawing_Point.X = 169
72.
$System_Drawing_Point.Y = 12
73.
$listBox2.Location = $System_Drawing_Point
74.
$listBox2.Name = "listBox2"
75.
$listBox2.ScrollAlwaysVisible = $True
76.
$System_Drawing_Size = New-Object System.Drawing.Size
77.
$System_Drawing_Size.Height = 173
78.
$System_Drawing_Size.Width = 153
79.
$listBox2.Size = $System_Drawing_Size
80.
$listBox2.TabIndex = 1
81.
$listBox2.Items.AddRange(1..200)
82.
$listbox2.add_KeyDown({
83.
    $listbox1.TopIndex = $listBox2.TopIndex
84.
})
85.
$listbox2.add_Scroll({
86.
  $listbox1.TopIndex = $_.Top  
87.
})
88.

89.
$form1.Controls.Add($listBox2)
90.

91.
$listBox1.DataBindings.DefaultDataSourceUpdateMode = 0
92.
$listBox1.FormattingEnabled = $True
93.
$System_Drawing_Point = New-Object System.Drawing.Point
94.
$System_Drawing_Point.X = 12
95.
$System_Drawing_Point.Y = 12
96.
$listBox1.Location = $System_Drawing_Point
97.
$listBox1.Name = "listBox1"
98.
$listBox1.ScrollAlwaysVisible = $True
99.
$System_Drawing_Size = New-Object System.Drawing.Size
100.
$System_Drawing_Size.Height = 173
101.
$System_Drawing_Size.Width = 151
102.
$listBox1.Size = $System_Drawing_Size
103.
$listBox1.TabIndex = 0
104.
$listBox1.Items.AddRange(1..200)
105.
$listbox1.add_KeyDown({
106.
    $listbox2.TopIndex = $listBox1.TopIndex
107.
})
108.
$listbox1.add_Scroll({
109.
  $listbox2.TopIndex = $_.Top  
110.
})
111.
$form1.Controls.Add($listBox1)
112.

113.

114.
#Save the initial state of the form
115.
$InitialFormWindowState = $form1.WindowState
116.
#Init the OnLoad event to correct the initial state of the form
117.
$form1.add_Load($OnLoadForm_StateCorrection)
118.
#Show the Form
119.
$form1.ShowDialog()| Out-Null
120.

121.
} #End Function
122.
GenerateForm
Grüße Uwe
Bitte warten ..
Mitglied: H41mSh1C0R
26.10.2017 um 10:04 Uhr
Danke Uwe,
schonwieder was was ich mir anschauen werde.
Die Wochenenden werden schonwieder kürzer.
*gg*
Bitte warten ..
Mitglied: internet2107
27.10.2017 um 13:01 Uhr
Vielen lieben Dank!!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Listbox Items verschieben
gelöst Frage von internet2107Batch & Shell2 Kommentare

Hallo. Ist es möglich, dass man Items in einer Listbox mit einer Art Button verschiebt? Ich lade die Einträge ...

Entwicklung
Powershell in Listbox ausgabe anpassen
gelöst Frage von Mendo28Entwicklung3 Kommentare

Guten Tag zusammen Ich möchte das bei der Listboxausgabe nur die IP und der Ordner(\\XX.X.XX.X\Ordner) angezeigt wird. Jedoch werden ...

Batch & Shell

Powershell Auswahlgruppen für Listbox Einträge

gelöst Frage von BuggerBatch & Shell4 Kommentare

Hallo zusammen, ist es möglich, eine Variable mit mehreren Einträgen zu haben und diese in der Listbox auszuwählen? Also ...

Batch & Shell

Powershell: ScrollBar in ListBox definieren

gelöst Frage von Markus2016Batch & Shell11 Kommentare

Hallo zusammen, benötige mal wieder Unterstüzung. :-) Ich erzeuge CheckBoxen in einem Array. Aufgrund deren Anzahl benötige ich einen ...

Neue Wissensbeiträge
Humor (lol)
Das IoT wird schlimmer
Erfahrungsbericht von Henere vor 1 StundeHumor (lol)

Nun auch schon über den WSUS:

Sicherheit

Win10 1809 und höher erlauben nun das Sperren und Whitelisten von bestimmten Geräten

Tipp von DerWoWusste vor 11 StundenSicherheit1 Kommentar

Vor 1809 konnten nur Geräteklassen gesperrt werden, nun können endlich einzelne Device instance IDs gewhitelistet werden (oder andersherum: gesperrt ...

Windows 10

Hands-On: What is new in the Windows 10 November 2019 Update?

Information von DerWoWusste vor 17 StundenWindows 10

Die wenigen (aber zum Teil interessanten) Neuheiten werden in diesem Video sehr schnell erklärt und vorgeführt.

Grafik

Gute Spiele aus der Ubuntu Repository: SuperTuxKart

Information von NetzwerkDude vor 1 TagGrafik1 Kommentar

Fall jemand die Firmenpolicy hat das man Linux Software nur aus dem default Repository installieren kann: Ich habe festgestellt ...

Heiß diskutierte Inhalte
Netzwerke
VPN auf Firmennetzwerk (Festplatten, Computer) einrichten, aber wie?
Frage von 81083Netzwerke34 Kommentare

Hallo, es ist ein Bisschen frustrierend. Wir haben einen 2012 R2 Server, eine Fritzbox und etwa 10-12 PC die ...

Ubuntu
Ubuntu-Putty hilfe
Frage von Nickolas.GroheUbuntu27 Kommentare

Hallo Wie ändere ich einen ssh Port auf Linux Ubuntu? LG Nickolas

Windows 7
Festplatte in einen anderen PC umziehen lassen
Frage von Ghost108Windows 724 Kommentare

Hallo zusammen, ich bekomme die nächsten Tage einen neuen PC (komplett andere Hardware als in meinem jetzigen) Was für ...

Windows Tools
Suche Suchprogramm
Frage von tsunamiWindows Tools24 Kommentare

Hallo, ich brauche einen Tipp für ein profesionelles Suchprogramm. Es geht um rund 3 TB Dokiumente auf ner externen ...