You are on page 1of 4

IMPRIMIR

EN RICHTEXTBOX
private void imprimir_en_richtexbox(RichTextBox r, SolidColorBrush c, string s)
{
TextRange tr = new TextRange(r.Document.ContentEnd, r.Document.ContentEnd);
tr.Text = s;
tr.ApplyPropertyValue(TextElement.ForegroundProperty, c);
r.AppendText(Environment.NewLine);
r.ScrollToEnd();
}

string mensaje = DateTime.Now.ToString("dd:MM:yyyy hh:mm:ss ") + "El sensor " +
posicion + " ha alcanzado una temperatura de " + t + " grados";
imprimir_en_richtexbox(registro_de_eventos, Brushes.Red, mensaje);

VALORES ALEATORIOS
Random r = new Random();


int fila = r.Next(0, 3); De 0 a 3
int temperatura = r.Next(100); Hasta 100

CREAR MATRIZ
int[,] matriz_temperaturas;
matriz_temperaturas = new int[4, 4];
matriz_temperaturas = new int[4, int.Parse(textBox1.Text)];


int[,] matriz_temperaturas = new int[4, 4];

int[,] matriz_temperaturas = new int[,] {{1, 2}, {3, 4}, {5, 6} {7, 8}};

int[,] matriz_temperaturas = new int[4, 2] {{1, 2}, {3, 4}, {5, 6} {7, 8}};

CREAR VECTOR
int[] vector;
vector = new int[4];

int[] vector = new int[4];


int[] vector = new int[] {1, 2, 3, 4};

int[] vector = new int[4] {1, 2, 3, 4};


CREAR TIMER
DispatcherTimer temperatura_timer = new DispatcherTimer();

temperatura_timer.Interval = new TimeSpan(0, 0, 0, 3, 0);
temperatura_timer.Tick += new EventHandler(ejecutar_cada_tick);

temperatura_timer.Start();
temperatura_timer.Stop();

GUARDAR TEXTO CON RICHTEXBOX


private void guardar_Click(object sender, RoutedEventArgs e)
{
TextRange range;
FileStream fStream;
SaveFileDialog saveFileDialog = new SaveFileDialog();
if (saveFileDialog.ShowDialog() == true)
{
range = new TextRange(richT.Document.ContentStart,
richT.Document.ContentEnd);
fStream = new FileStream(saveFileDialog.FileName, FileMode.Create);
range.Save(fStream, DataFormats.Text);
fStream.Close();
}
}

CARGAR TEXTO CON RICHTEXTBOX


private void cargar_Click(object sender, RoutedEventArgs e)
{
TextRange range;
FileStream fStream;
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == true)
{
if (File.Exists(openFileDialog.FileName))
{
range = new TextRange(richT.Document.ContentStart,
richT.Document.ContentEnd);
fStream = new FileStream(openFileDialog.FileName,
FileMode.OpenOrCreate);
range.Load(fStream, DataFormats.Text);
fStream.Close();
}
}
}

CREAR BACKGROUNDWORKER
1. En el nivel de la clase se crea el worker:
BackgroundWorker worker = new BackgroundWorker();

2. Se especifica si se quiere informar del progreso y de si se deja cancelar en la


inicializacin:
worker.WorkerSupportsCancellation = true;
worker.WorkerReportsProgress = true;

3. Se aaden los eventos para las funciones de los eventos en la inicializacin:



worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.ProgressChanged += new
ProgressChangedEventHandler(worker_ProgressChanged);
worker.RunWorkerCompleted += new
RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);

4. Se aade funcin que se ejecuta cada 0.5 segundos (no en contacto con la interfaz):
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;

for (int i = 1; i <= 10; i++)
{
if (worker.CancellationPending == true)
{
e.Cancel = true;
break;
}
else
{
System.Threading.Thread.Sleep(500);
worker.ReportProgress(i * 10);
}
}
}

5. Se aade funcin que muestra el progreso y puede modificar la interfaz:


private void worker_ProgressChanged(object sender,
ProgressChangedEventArgs e)
{
textlabel.Content = (e.ProgressPercentage.ToString() + "%");
progress.Value = e.ProgressPercentage;
string text = e.ProgressPercentage.ToString();
imprimir(richT, Brushes.Black, text);
}

6. Se aade funcin que se ejecuta cuando se ha completado el trabajo del worker y se


actualiza la interfaz:

private void worker_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{

if (e.Cancelled == true)
{
textlabel.Content = "Canceled!";
}
else if (e.Error != null)
{
textlabel.Content = "Error: " + e.Error.Message;

}
else
{
textlabel.Content = "Done!";
if (worker.IsBusy != true)
{
worker.RunWorkerAsync();
}
else
{
worker.CancelAsync();
}
}
}

7. Comienzo y parada:
private void Start_Click(object sender, RoutedEventArgs e)
{
if (worker.IsBusy != true)
{
worker.RunWorkerAsync();
}
}

private void Stop_Click(object sender, RoutedEventArgs e)
{
if (worker.WorkerSupportsCancellation == true)
{
worker.CancelAsync();
}
}


AADIR EVENTO A UNA IMAGEN (MISMO EVENTO DISTINTAS IMAGENES)
1. Asignar el mismo MouseDown a todas las imgenes:
private void a00_MouseDown(object sender, MouseButtonEventArgs e){}

2. Obtener el nombre de la imagen que ha sido pulsada por el


usuario:
Image image = sender as Image;
String temp = image.Name;
temp = temp.Replace("a", " ");
int butaca = int.Parse(temp);

You might also like