using System; using System.Collections.Generic; using System.Windows.Forms; using WMPLib; using TagLib; namespace WindowsFormsApp5 { public partial class Form1 : Form { WindowsMediaPlayer Player = new WindowsMediaPlayer(); List<string> addsong = new List<string>(); string temp; Song song = new Song(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) //delete from playlist { if (listBox1.SelectedIndex > -1) { listBox1.Items.Remove(listBox1.SelectedIndex); addsong.Remove(addsong[listBox1.SelectedIndex]); listBox1.Items.Clear(); for (int i = 0; i < addsong.Count; i++) { File file = File.Create(addsong[addsong.Count - 1]); if (file.Tag.Title != null) { song.Title = file.Tag.Title.ToString(); } else song.Title = "null"; listBox1.Items.Add(song.Title); } } } private void button2_Click(object sender, EventArgs e) //pause { Player.controls.pause(); } private void button3_Click(object sender, EventArgs e) //play { if (listBox1.SelectedIndex > -1) { if (listBox1.SelectedIndex < addsong.Count && listBox1.SelectedIndex > -1) Player.URL = addsong[listBox1.SelectedIndex]; Player.controls.play(); timer1.Start(); temp = addsong[listBox1.SelectedIndex]; } } private void button4_Click(object sender, EventArgs e) //next { if (listBox1.SelectedIndex + 1 < addsong.Count) { listBox1.SelectedIndex++; if (temp != addsong[listBox1.SelectedIndex]) Player.URL = (addsong[listBox1.SelectedIndex]); Player.controls.play(); timer1.Start(); temp = addsong[listBox1.SelectedIndex]; } } private void button5_Click(object sender, EventArgs e) //open playlist { string line; OpenFileDialog dilog1 = new OpenFileDialog() { Filter = "TXT | *.txt", ValidateNames = true, }; if (dilog1.ShowDialog() == DialogResult.OK) { listBox1.Items.Clear(); for (int i = 0; i < addsong.Count; i++) { addsong.Remove(addsong[i]); } using (System.IO.StreamReader sr = new System.IO.StreamReader(dilog1.FileName)) { while ((line = sr.ReadLine()) != null) { addsong.Add(line); File file = File.Create(addsong[addsong.Count - 1]); if (file.Tag.Title != null) { song.Title = file.Tag.Title.ToString(); } else song.Title = "null"; listBox1.Items.Add(song.Title); } } } } private void button6_Click(object sender, EventArgs e) //save playlist { OpenFileDialog ofd1 = new OpenFileDialog() { Filter = "TXT | *.txt", ValidateNames = true, }; if (ofd1.ShowDialog() == DialogResult.OK) { using (System.IO.StreamWriter sw = new System.IO.StreamWriter(ofd1.FileName, true)) { for (int i = 0; i < addsong.Count; i++) { sw.WriteLine(addsong[i]); } } } } private void button7_Click(object sender, EventArgs e) //add to playlist { OpenFileDialog dialog = new OpenFileDialog() { Filter = "MP3 | *.mp3", ValidateNames = true, Multiselect = true }; if (dialog.ShowDialog() == DialogResult.OK) { foreach (string filename in dialog.FileNames) { addsong.Add(filename); File file = File.Create(addsong[addsong.Count - 1]); if (file.Tag.Title != null) { song.Title = file.Tag.Title.ToString(); } else song.Title = "null"; listBox1.Items.Add(song.Title); } } } private void button8_Click(object sender, EventArgs e) //info { if (listBox1.SelectedIndex > -1) { File file1 = File.Create(addsong[listBox1.SelectedIndex]); if (file1.Tag.Album == null) song.Album = " "; else song.Album = file1.Tag.Album.ToString(); if (file1.Tag.AlbumArtists == null) song.AlbumArtist = ""; else song.AlbumArtist = file1.Tag.AlbumArtists.ToString(); if (file1.Tag.Artists == null) song.Artist = ""; else song.Artist = file1.Tag.Artists.ToString(); if (file1.Tag.Year == null) song.Year = " "; else song.Year = file1.Tag.Year.ToString(); if (file1.Tag.Title == null) song.Title = " "; else song.Title = file1.Tag.Title.ToString(); if (file1.Tag.Genres == null) song.Genres = " "; else song.Genres = file1.Tag.Genres.ToString(); string message = $"Альбом: {song.Album} " + $"\n Название: {song.Title}" + $"\n Год: {song.Year}"; string caption = "Information"; MessageBoxButtons buttons = MessageBoxButtons.OK; DialogResult result; result = MessageBox.Show(message, caption, buttons); } } private void button9_Click(object sender, EventArgs e) //previous { if (listBox1.SelectedIndex > 0) { listBox1.SelectedIndex--; if (temp != addsong[listBox1.SelectedIndex]) Player.URL = (addsong[listBox1.SelectedIndex]); Player.controls.play(); timer1.Start(); temp = addsong[listBox1.SelectedIndex]; } } private void timer1_Tick(object sender, EventArgs e) { var timer = TimeSpan.FromSeconds(Player.controls.currentPosition); trackBar2.Maximum = ((int)Player.currentMedia.duration); label1.Text = Player.currentMedia.durationString; label2.Text = $"{timer.Minutes}:{timer.Seconds}"; trackBar2.Value = (int)Player.controls.currentPosition; } private void trackBar2_Scroll(object sender, EventArgs e) { Player.controls.currentPosition = trackBar2.Value; System.Threading.Thread.Sleep(300); } private void trackBar1_Scroll(object sender, EventArgs e) { trackBar1.Maximum = 100; Player.settings.volume = trackBar1.Value; trackBar1.Minimum = 0; } public class Song { public string Title; public string Artist; public string AlbumArtist; public string Genres; public string Year; public string Album; public string Duration; } private void Form1_Load(object sender, EventArgs e) { Player.settings.volume = 50; } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void label2_Click(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } } }
Write, Run & Share C# code online using OneCompiler's C# online compiler for free. It's one of the robust, feature-rich online compilers for C# language, running on the latest version 8.0. Getting started with the OneCompiler's C# compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C#
and start coding.
OneCompiler's C# online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
using System;
namespace Sample
{
class Test
{
public static void Main(string[] args)
{
string name;
name = Console.ReadLine();
Console.WriteLine("Hello {0} ", name);
}
}
}
C# is a general purpose object-oriented programming language by Microsoft. Though initially it was developed as part of .net but later it was approved by ECMA and ISO standards.
You can use C# to create variety of applications, like web, windows, mobile, console applications and much more using Visual studio.
Data Type | Description | Range | size |
---|---|---|---|
int | To store integers | -2,147,483,648 to 2,147,483,647 | 4 bytes |
double | to store large floating point numbers with decimals | can store 15 decimal digits | 8 bytes |
float | to store floating point numbers with decimals | can store upto 7 decimal digits | 4 bytes |
char | to store single characters | - | 2 bytes |
string | to stores text | - | 2 bytes per character |
bool | to stores either true or false | - | 1 bit |
datatype variable-name = value;
When ever you want to perform a set of operations based on a condition or set of few conditions IF-ELSE is used.
if(conditional-expression) {
// code
}
else {
// code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression) {
case value1:
// code
break; // optional
case value2:
// code
break; // optional
...
default:
// code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement) {
// code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while(condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Array is a collection of similar data which is stored in continuous memory addresses. Array values can be fetched using index. Index starts from 0 to size-1.
data-type[] array-name;
Method is a set of statements which gets executed only when they are called. Call the method name in the main function to execute the method.
static void method-name()
{
// code to be executed
}