PDA

Vollständige Version anzeigen : Listbox multicolumn in VB.NET


TykaAndreas
20.07.2003, 15:03
wie kann man in VB.net in einer Listbox mehrer Spalten anzeigen .
Seit gestern wühle ich das netz durch , zu Listbox findet man schon beispiele , konnte aber keins finden wo die Listbox mehr als eine spalte anzeigt .

wenn ich schreibe

ListBox2.Items.Add("Spalte1","spalte2")

wird es sofort als falsch angezeigt
diese Variante führt nur dazu das die Werte unterienander stehen

ListBox2.Items.Add("Spalte1")
ListBox2.Items.Add("spalte2")

Die OH gibt es Erklärungen zu Multicolumn , beschränkt sich aber auf das setzetn von True und False

Khelben
20.07.2003, 21:36
Moin,

das Prob hab ich etwas unelegant(?) gelöst indem ich die Werte, die in einer Reihe stehen sollen als String verknüpft habe mit der Space-Funkion um entsprechende Leerzeichen dazwischen zu haben.

wert = wert1 & space(10) & wert2
listbox.items.add(wert)

Wenn Du die Werte, spaltenmäßig einzeln selektieren möchtest, kommst du wohl um ein Grid nich drum rum, wobei ich mich mit den Dingern nich auskenn, mal abgesehn von Datagrids, die mit Hilfe von DB-Abfragen gefüllt werden.

Greetz

Markus

TykaAndreas
20.07.2003, 22:11
mmh, geht nartürlich auch , aber ich dachte eher an sowas wie ein spaltenweise auflistung wie zB bi listboxen in Access , sowas ist ich möglich ?

Khelben
21.07.2003, 07:38
Nein, das geht leider nicht... ich habe mal gesucht und zitiere jetzt aus dem Koffler-Buch VB .net zum Thema Listbox....

MultiColumn gibt an, ob Listeneinträge in einer einzigen Spalte untereinander oder in mehreren Spalten nebeneinander angezeigt werden sollen........ Unabhängig von der Einstellung von MultiColumn ist es aber nicht möglich, mehrspaltige Listeneinträge anzuzeigen (also z.B. ein Listenelement das aus den Spalten Name u Adresse besteht). Für diesen Zweck müssen sie ein ListView Steuerelement einsetzen.

HTH

Markus

TykaAndreas
18.08.2003, 20:23
Der Code wird wieder auseinandergezogen, ich habe eben unter der Weltkugel den Eintrag geändert

so müsste es gehen wenn man in Listboxen mehrere spalten auffülen will,
hier sind es zwei spalten , wenn es drei sind erweitert sich das entsprechend

<div>
<link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet">
<pre>
<span class="TOKEN">Private Sub</span> Liste_f&uuml;llen_Click(<span class="TOKEN">ByVal</span> sender <span class="TOKEN">As</span> System.Object, <span class="TOKEN">ByVal</span> e <span class="TOKEN">As</span> System.EventArgs) Handles Liste_f&uuml;llen.Click
<span class="REM"> 'Beispiel auf Seite 806</span>
<span class="TOKEN">Dim</span> dt <span class="TOKEN">As</span> DataTable = ds.Tables.Item(&quot;tbl_Key&quot;)
<span class="TOKEN">Dim</span> custrow <span class="TOKEN">As</span> DataRow
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> custrow <span class="TOKEN">In</span> dt.Rows
ListBox1.Items.Add(custrow.Item(&quot;Key&quot;) &amp; &quot; &quot; &amp; custrow.Item(&quot;get_Mot&quot;))
<span class="TOKEN">Next</span>
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span>

</pre>
</div>

jinx
20.08.2003, 04:59
<font size="2" face="Century Gothic">Moin, Andreas,

das ist ein Darstellungstest zur Prüfung.

1. Dein Code nachbearbeitet (dazu wurde der Zusatz [ code] bzw. [ /code] ohne das Leerzeichen angegeben und der Zeilenabstand verkürzt):

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre>
<span class="TOKEN">Private Sub</span> Liste_f&uuml;llen_Click(<span class="TOKEN">ByVal</span> sender <span class="TOKEN">As</span> System.Object, <span class="TOKEN">ByVal</span> e <span class="TOKEN">As</span> System.EventArgs) Handles Liste_f&uuml;llen.Click
<span class="REM"> 'Beispiel auf Seite 806</span>
<span class="TOKEN">Dim</span> dt <span class="TOKEN">As</span> DataTable = ds.Tables.Item(&quot;tbl_Key&quot;)
<span class="TOKEN">Dim</span> custrow <span class="TOKEN">As</span> DataRow
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> custrow <span class="TOKEN">In</span> dt.Rows
ListBox1.Items.Add(custrow.Item(&quot;Key&quot;) &amp; &quot; &quot; &amp; custrow.Item(&quot;get_Mot&quot;))
<span class="TOKEN">Next</span>
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>

2. der Code aus der bei mir installierten Version des Converters 2.1.3:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> Liste_f&uuml;llen_Click(<span class="TOKEN">ByVal</span> sender <span class="TOKEN">As</span> System.Object, <span class="TOKEN">ByVal</span> e <span class="TOKEN">As</span> System.EventArgs) Handles Liste_f&uuml;llen.Click
<span class="REM"> 'Beispiel auf Seite 806</span>
<span class="TOKEN">Dim</span> dt <span class="TOKEN">As</span> DataTable = ds.Tables.Item(&quot;tbl_Key&quot;)
<span class="TOKEN">Dim</span> custrow <span class="TOKEN">As</span> DataRow
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> custrow <span class="TOKEN">In</span> dt.Rows
ListBox1.Items.Add(custrow.Item(&quot;Key&quot;) &amp; &quot; &quot; &amp; custrow.Item(&quot;get_Mot&quot;))
<span class="TOKEN">Next</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Weitere Anmerkungen siehe bitte in Code Converter (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=98640).</font>