bin gerade am Experimentieren mit der vs-Hilfe. Habe jetzt vc# und vb installiert. Wenn ich in vb z.B. "TextBox1" markiere, kommt die online-Hilfe für vc#. (Wie ich jetzt herausgefunden habe kann man oben rechts auf der Seite einstellen, dass vb-Code kommt => also alles in Ordnung) (https:// )docs.microsoft.com/de-de/dotnet/api/system.windows.forms.textbox?redire ctedfrom=MSDN&view=netframework-4.7.2 Genau die gleiche Hilfe möchte ich in vc haben. Es kommt aber nur ein nicht interessierender Hinweis auf "previous version" (https:// )docs.microsoft.com/de-de/previous-versions/visualstudio/visual-studio-2 010/dd831853(v=vs.100) Wie stelle ich in vc# ein, dass die online-Hilfe richtig funktioniert?
konkretes Problem: abfry = Dir(TextBox3.Text + @"\*.*", FileAttribute.Directory); Dir kennt vc# nicht. Da fehlt wohl irgendeine bib. Welche?
Hä? les deinen Beitrag noch mal durch und versuche zu verstehen, was deine Frage ist.
Beitrag #5606614 wurde von einem Moderator gelöscht.
Beitrag #5606620 wurde von einem Moderator gelöscht.
Horst schrieb im Beitrag #5606614:
> such dir was besseres
Standardanwendung ist bei mir, Dateiordner lesen, sortieren
txt-Dateien schreiben und lesen.
in vb lese ich ein Dateiverzeichnis so:
abfr= Dir("xyz")
do while abfr<>""
abfr=dir()
loop
Dir stammt wohl noch aus Dos-Zeiten.
In vc# bin ich mit der Umsetzung dieser Aufgabe bislang gescheitert.
Hilft auch nicht, den code irgendwoher zu bekommen. Der Einstieg in vc#
ist wohl mit Arbeit verbunden. Habe jetzt 700 Seiten Tutorial
ausgedruckt und wühl mich durch das Geraffel mal durch.
Du bist in C#? Ist es möglich, dass Du eine Referenz auf Microsoft.VisualBasic… im Projekt vermisst? Wenn ich das so richtig verstehe, Du suchst nach lokalen Verzeichnissen oder so? Das geht in C# und VB.NET mittlerweile anders, aber bei beiden gleich. Mach mal den ObjectBrowser auf und suche nach dem Namensraum System.IO im Assembly mscorlib. Da gibt's Klassen, wie Path, Directory, File, DriveInfo, ... Statt TextBox3.Text + @"\*.*" kannst Du dann auch schreiben Path.Combine(TextBox3.Text,"*.*) (Das ersetzt Dir unter Mono auf'm Raspi sogar noch den "\\" durch'n "/")
Framulestigo schrieb: > Ist es möglich, dass Du eine Referenz auf Microsoft.VisualBasic… im > Projekt vermisst? Darauf würde ich auch tippen. In C# würde man allerdings statt Dir() aus VB.net eher Directory.GetFiles() (steckt in System.IO) oder eine der anderen Funktionen der Directory-Klasse nehmen.
Framulestigo schrieb: > Da gibt's Klassen, wie Path, Directory, File, DriveInfo, ... Danke, gefunden - mit alten dos- Kenntnissen jahrzehntelang durchgemogelt... Jetzt häng ich am listview: [c] try { var txtFiles = Directory.EnumerateDirectories(sourceDirectory, "*.*", SearchOption.TopDirectoryOnly); foreach (string currentFile in txtFiles) { string fileName = currentFile.Substring(sourceDirectory.Length); FileAttributes attributes = File.GetAttributes(sourceDirectory + fileName); if (File.GetAttributes(sourceDirectory + fileName) == FileAttributes.Directory) { listView1.Items.Add(fileName); //listView1.Items(i).SubItems.Add ("V"); //listView1.Items(i).SubItems.Add((Strings.Format(len, "#,###"))); } } } catch (Exception ex) { listBox1.Items.Add(ex); } [c/] Der code geht in vb. In vc bekomme ich die subitems nicht gehandelt. Wie lege ich in vc ein listview-subitem an?
grundschüler schrieb: > listView1.Items.Add(fileName); > > //listView1.Items(i).SubItems.Add ("V"); > //listView1.Items(i).SubItems.Add((Strings.Format(len, > "#,###"))); Meinst Du das? listView1.Items[i].SubItems.Add ("V"); C unterscheidet generell den Zugriff auf Feldelemente (auch Listen) durch die Form der Klammern (->[i]). Das i brauchst Du aber nicht, respektive i hast Du in Deinem Code gar nicht drin. Schau Dir noch mal im ObjectBrowser die Signatur der überladenen ListViewItemsCollection.Add-Methoden an. Du wirst feststellen, die haben alle auch nen Rückgabewert. --> ListViewItem newItm = listView1.Items.Add(fileName); newItm.SubItems.Add(...); ...sollte z.B. gehen.
Ersetze den foreach loop mit (und lerne linq):
1 | listView1.Items.AddRange( |
2 | new DirectoryInfo(sourceDirectory) |
3 | .EnumerateDirectories() |
4 | .Select(x => new ListViewItem(x.Name)) |
5 | .ToArray()); |
Cheers, Roger
hier die Variante mit subitems in einem flutsch:
1 | listView1.Items.AddRange( |
2 | new DirectoryInfo(sourceDirectory) |
3 | .EnumerateDirectories() |
4 | .Select(x => new ListViewItem(new string[] |
5 | { x.Name, "V", x.CreationTime.ToString() }, |
6 | -1)) |
7 | .ToArray()); |
Cheers, Roger
Framulestigo schrieb: > Form der Klammern (->[i]). Danke. Stunden der Fehlersuche - so ein dummer Fehler...
1 | |
2 | mp.settings.volume = 100; |
3 | listBox2.SelectedItem = "DerdritteMann.mp3"; |
4 | mp.URL = @mp3_device + @mp3_folder + @"\" + @listBox2.Items[listBox2.SelectedIndex]; |
5 | mp.controls.currentPosition = mp3_position;
|
6 | mp.controls.play();
|
7 | button5.Text = "pause"; |
Mit einigem Probieren ist der Einstieg in c# gar nicht so schwierig. Jetzt habe ich folgendes Problem: Bei Aufruf des Programms soll die System-Lautstärke - meist von Lautspecher aus - auf einen bestimmten Wert eingestellt werden. Wie greife ich von c# auf die Systemlautstärke zu?
Auch, wenn das irgendwie altmodisch klingt: Vielleicht solltest du a) mit C# ganz vorne anfangen, und nicht einfach dein VB Programm in eine dir unbekannte Sprach übersetzen wollen und b) das Forum nicht als Suchfunktion missbrauchen, erstes Suchergebnis bei Google beantwortet deine Frage: https://www.google.com/search?hl=de&q=c%23%20windows%20sound%20volume -> https://stackoverflow.com/questions/13139181/how-to-programmatically-set-the-system-volume
Michael schrieb: danke für deinen Beitrag. Das verlinkte Beispiel funktioniert auf Anhieb perfekt. Ich hatte natürlich vorher selbst gegoogelt, bin aber nicht weiter gekommen. Problem für mich ist die Systematik der Einbindung von Resourcen: using System.Runtime.InteropServices; [DllImport("user32.dll")] > mit C# ganz vorne anfangen, und nicht einfach dein VB Programm in > eine dir unbekannte Sprach übersetzen wollen Das ist nicht ganz einfach wenn man c-Vorkenntnisse hat. Ich bin mit einem recht komplizierten c#-Projekt - auch dank deiner Hilfe - doch recht weit gekommen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.