Eccovi nel dettaglio i 3 files del progetto incriminato:
File Program.cs:
codice:
namespace FirstApp
{
public class Program
{
/// <summary>
/// Punto di ingresso principale dell'applicazione.
///
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 NewFile = new Form1();
NewFile.Init();
Application.Run(new Form1());
}
}
}
File Form1.cs:
codice:
namespace FirstApp
{
public partial class Form1 : Form
{
byte tmp;
string path = @"E:\SrcSoftware\C#\FirstApp\Sun.bmp";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string data = ">Ciao";
WriteCharOnCom1(data);
listBox1.Items.Add(data); // Questa viene stampata correttamente
}
private void button2_Click(object sender, EventArgs e)
{
label1.Text = "";
listBox1.Items.Clear();
listBox2.Items.Clear();
}
private void timer1_Tick(object sender, EventArgs e)
{
// Per test Timer, questa parte è funzionante
if ((++progressBar1.Value) >= 100)
progressBar1.Value = 0;
//
if (tmp == 1)
{
tmp = 0;
pictureBox1.Image = null;
}
else
{
tmp = 1;
pictureBox1.Image = Image.FromFile(path);
}
}
}
}
File New.cs:
codice:
namespace FirstApp
{
public partial class Form1
{
public string buffRx;
static SerialPort port = new SerialPort();
private SerialDataReceivedEventHandler SerialDataReceivedEventHandler1;
// Init serial com port e smsp data
public void Init()
{
// Instantiate the communications // port with some basic settings
port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
SerialDataReceivedEventHandler1 = new SerialDataReceivedEventHandler(DataReceived);
port.DataReceived += SerialDataReceivedEventHandler1;
port.Open();
label1.Text = "Init"; // Questa NON viene stampata sulla label nel Form
}
// Event to receive data from com port
public void DataReceived(object sender, SerialDataReceivedEventArgs e)
{
buffRx = null;
buffRx = port.ReadExisting();
listBox2.Items.Add(buffRx); // Questa NON viene stampata sulla listBox2 nel Form
}
public void WriteCharOnCom1(string ch)
{
port.Write(ch);
}
}
}
Come vedrete dai commenti in due punti nel file New.cs "tento" di scrivere sul Form tramite
una label e una listBox senza aver alcun riscontro a video, mentre nel file Form1.cs nel metodo button1_Click viene correttamente visualizzata nella listBox1.