|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2000
Città: Prato
Messaggi: 1061
|
[C#] Gestire 4 checkbox
Ciao a tutti,
Sto creando, a scopo didattico, una piccola applicazione che mi fa partire le utility di sistema di windows senza ricorrere alla riga di comando. Ora volendo implementare il defrag, ho creato 4 checkbox dove dovrei selezionare gli argomenti da passare al comando defrag.exe. Ora, il problema e' che i checkbox posso essere selezionati coem uno preferisce (esempio verbose -v e full defrag -w) solo che non so come gestirli. Come faccio ad assegnare ad ogni check un valore da passare poi alla riga di comando? Io per ora sto procedendo a colpi di 'if' ma la soluzione non e' buona, infatti fa' un po quello che gli pare ![]() Vi posto il codice che per ora ho sviluppato. Codice:
// Defrag system private void button2_Click(object sender, EventArgs e) { const string arg = "-a "; const string drive = "c: "; const string boot = "-b "; const string verb = "-v "; const string allvol = "-c "; const string full = "-w "; string command = ""; if (checkBox1.Checked) { command = (command + boot); } if (checkBox2.Checked) { command = (command + verb + arg); } if (checkBox3.Checked) { command = (command + allvol); } if (checkBox4.Checked) { command = (command + full); } Process.Start("defrag.exe ", command + drive); }
__________________
Il mio colore preferito era il blu... Fino a quando non ho installato Windows... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2009
Messaggi: 609
|
Ciao!
Premesso che anch'io sono alle prime armi (anzi, primissime ![]() - utilizzo il controllo CheckedListBox al posto dei CheckBox; - utilizzo un comboBox; - creo un array rettangolare di tipo string dove metto tutti i comandi relativi al defrag; - creo un campo Command di tipo string (è quello da passare come argomento al metodo Start della classe Process); Ecco il codice: Codice:
public partial class Form1 : Form { static string Command; static string[] drives = Environment.GetLogicalDrives(); static string[,] CommandArray = new string[3, 2] // [riga, colonna] aumenta la dimensione Riga se vuoi aggiungere altri comandi possibili { {"-v","Verbose Mode"}, {"-w","Full Defrag Mode"}, {"-b","Other command"} }; public Form1() { InitializeComponent(); comboBox1.Items.AddRange(drives); for (int i = 0; i < CommandArray.GetLength(0); i++) checkedListBox1.Items.Add(CommandArray[i, 1]); } private void button1_Click(object sender, EventArgs e) { Command= string.Empty; if (comboBox1.text!=string.Empty) { for (int i = 0; i < CommandArray.GetLength(0); i++) { if (checkedListBox1.CheckedItems.Contains(CommandArray[i, 1])) Command = Command + " " + CommandArray[i, 0]; } Process.Start("defrag.exe ", command + " " + comboBox1.Text); } else MessageBox.Show("Devi selezionare un drive da deframmentare."); } } ![]() Ultima modifica di alex783 : 19-04-2009 alle 16:10. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Prato
Messaggi: 1061
|
Grazie per il suggerimento, provo subito.
Edit: Ho provato e funge alla grande! Grazie ancora
__________________
Il mio colore preferito era il blu... Fino a quando non ho installato Windows... Ultima modifica di mcardini : 19-04-2009 alle 16:40. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:58.