Autor Beitrag
Scarecraft
Hält's aus hier
Beiträge: 16



BeitragVerfasst: Fr 18.04.08 19:13 
Hallo an alle ,
also ich hab ein Event , das startet wenn ich was in eine Listbox ziehe .
Nunja das klappt alles toll , aber ich möchte nicht den ganze link "C:\\bla\\blaaaa\bla.mp3"
sondern nur :"bla.mp3" stehen haben ,,...
hatte das selbe prob bei openfile hab das so gelöst :




ausblenden C#-Quelltext
1:
listBox1.Items.Add(System.IO.Path.GetFileName(open.FileName));					


Naja hier der Eventcode des Drag and Drop erreignisses der Listbox:



ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
private void Form1_Load(object sender, EventArgs e)
        {
           

            listBox1.AllowDrop = true;
            listBox1.DragOver += new DragEventHandler(listboxOnDragOver);
            listBox1.DragDrop += new DragEventHandler(listboxOnDragDrop);

        }
        void listboxOnDragOver(object obj, DragEventArgs dea)
        {
            if (dea.Data.GetDataPresent(DataFormats.FileDrop))
                dea.Effect = DragDropEffects.Move;
        }
        void listboxOnDragDrop(object obj, DragEventArgs dea)
        {
            if (dea.Data.GetDataPresent(DataFormats.FileDrop))
            {
                string[] dateien = (string[])dea.Data.GetData(DataFormats.FileDrop);
                listBox1.Items.AddRange(dateien);

                
                

                
            }
        }

Wichtig ist das dabei die extenison (.mp3 , .bmp,.avi) erhalten bleibt ...
Danke schonmal
schönen tag noch scarecraft !
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 18.04.08 19:55 
Hallo,

ich finde bei Deinem Thema keine Frage. Wo liegt denn das Problem?

Du brauchst nur Dein String-Array dateien nicht per AddRange, sondern per Add() einzeln zu übertragen; dabei lässt Du jeden String über Path.GetFile() laufen. Denn diese Methode benutzt einen String als Dateinamen, aber nicht eine wirklich vorhandene Datei.

Jürgen
Scarecraft Threadstarter
Hält's aus hier
Beiträge: 16



BeitragVerfasst: Mo 21.04.08 16:10 
user profile iconJüTho hat folgendes geschrieben:
Hallo,

ich finde bei Deinem Thema keine Frage. Wo liegt denn das Problem?



Jürgen


Ja also : wenn ich das so mache wie oben dann steht da :
ausblenden C#-Quelltext
1:
" C:\Programme\Musik\benutzer\Scarecraft\Mp3\Rock\Linkinpark\numb.mp3"					

in der Listbox

Aber ich möchte gerne das da :
ausblenden C#-Quelltext
1:
"numb.mp3"					

Steht ;)
Danke schonmal
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 21.04.08 16:21 
Aber was hindert Dich, das so zu machen wie Du's oben beim OpenDialog gezeigt hast? :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 21.04.08 17:23 
Wie ich es doch schon vorher geschrieben hatte:
user profile iconJüTho hat folgendes geschrieben:

Du brauchst nur Dein String-Array dateien nicht per AddRange, sondern per Add() einzeln zu übertragen; dabei lässt Du jeden String über Path.GetFile() laufen.

Es ist doch hoffentlich nicht nötig, dass wir die Schleife mit Deinem allerersten Code schreiben; das solltest Du doch selbst können.

Jürgen
Scarecraft Threadstarter
Hält's aus hier
Beiträge: 16



BeitragVerfasst: Di 22.04.08 16:45 
Ja ich weis nun wie ihr das meint ,
aber mit der syntax hab ich noch probleme hab das nu so gemacht :

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
 string [] dateien = (string[])dea.Data.GetData(DataFormats.FileDrop);

                for (int i = 0; i < dateien.Length; i++)
                {
                    listBox1.Items.Add(System.IO.Path.GetFileName(dateien)); ;
                }


Also die schleife dürfte tun ,aber der schleifen inhalt ist noch nicht ganz korreckt er sagt mir dabei :

ausblenden C#-Quelltext
1:
The best overloaded method match for 'System.IO.Path.GetFileName(string)' has some invalid arguments					


mh .. ich bin wohl einfach zu blöde :P
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 22.04.08 17:00 
dateien ist ein Array, welches Du mit einer Schleife durchläufts. Du willst die einzelnen Elemente des Arrays an die Methode übergeben, im Moment übergibst Du das komplette Array.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 22.04.08 18:16 
Ich hoffe, dass ich Dich mit meinem Hinweis nicht zusätzlich verwirre. Unter C# (und anderen neueren Programmiersprachen) gibt es die foreach-Schleife:
ausblenden C#-Quelltext
1:
2:
3:
4:
string[] stringArray = ...// was auch immer
foreach(string s in stringArray) {
   //  verarbeite s
}

Das vereinfacht sehr oft das Schreiben von Schleifen. Die Reihenfolge entspricht meistens dem indizierten Zugriff (aber nicht immer); wenn es nicht auf die Reihenfolge ankommt, ist foreach meistens vorzuziehen.

Jürgen
Scarecraft Threadstarter
Hält's aus hier
Beiträge: 16



BeitragVerfasst: Di 22.04.08 19:24 
ah habs geschafft , bin ja dochnet so blöde ^^

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
string[]  dateien = (string[])dea.Data.GetData(DataFormats.FileDrop);

                foreach (string s  in dateien)
                {
                    listBox1.Items.Add(System.IO.Path.GetFileName(s)); 

                }


Dankeschön an alle :) and :
Have a nice day!!!
Mfg Scarecraft