Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C#, tiedoston avaus, taulukko parametrina

NuMiNi [30.06.2012 15:09:52]

#

Haluaisin saada buttonclick-tapahtumalla avattua listboxin selectedindexin. En vain saa millään toimimaan tuota, että saisin välitettyä string[] taulukon parametrina aliohjelmaan. Vinkkejä kaivataan.

private void Kasittely()
...
{
string[] tiedostonimet = Directory.GetFiles(hakemisto, "*.txt", SearchOption.AllDirectories);
}
...
private void AvaaTiedosto(string[] tiedostonimet)
{
    System.Diagnostics.Process.Start("notepad.exe", tiedostonimet[listBox1.SelectedIndex]);
}

private void button3_Click(object sender, EventArgs e)
{
    AvaaTiedosto();
}

private void AvaaTiedosto()
{
    //throw new NotImplementedException();
}

runeberg [30.06.2012 17:04:34]

#

System.Diagnostics.Process.Start("notepad.exe", listbox.Items[listbox.SelectedItemIndex].ToString());

EDIT. Stringi muunnos unehtu

NuMiNi [30.06.2012 17:40:26]

#

Alkoi toimimaan, tosin piti vielä muuttaa string-tyyppiseksi. Kiitos.

neau33 [30.06.2012 20:14:41]

#

Noi NuMiNi!

Miksi tehdä asiat monen mutkan kautta..?

using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;

namespace StartFromComboboxSeletedItem
{

    public partial class MainForm : Form
    {

        public MainForm()
        {

            InitializeComponent();
        }

        void MainFormLoad(object sender, EventArgs e)
        {
            comboBox1.DataSource = Directory.GetFiles(
            Environment.GetFolderPath(
            Environment.SpecialFolder.MyDocuments),
            "*.txt", SearchOption.AllDirectories);
            comboBox1.SelectedIndex = 0;
        }

        void Button1Click(object sender, EventArgs e)
        {
            KillNotepad();
            Process.Start("notepad.exe", comboBox1.SelectedItem.ToString());
            comboBox1.Focus();
        }

        void KillNotepad()
        {
            foreach (Process proc in Process.GetProcesses()) {
                if (proc.ProcessName == "notepad") {
                    proc.Kill();
                }
            }
        }

    }

}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta