点击执行以下代码时,我有一个按钮(名为:open port):
private void button1_Click(object sender, EventArgs e)
{
try
{
if (!serialPort1.IsOpen)
{
serialPort1.Open();
}
else
{
MessageBox.Show("Port is Open by other party!");
}
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show(ex.Message);
}
}
我想做的是:
我按下它,我希望它执行以下代码:
serialPort1.Close();
Form1 myForm = new Form1();
this.Close();
答案 0 :(得分:0)
如果您只想要一个切换打开和关闭端口的按钮,那么只需执行以下操作即可:
private void button1_Click(object sender, EventArgs e)
{
try
{
if (!serialPort1.IsOpen)
{
serialPort1.Open();
this.button1.Text = "Close Port";
}
else
{
serialPort1.Close();
this.button1.Text = "Open Port";
}
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show(ex.Message);
}
}
至于额外的代码:
Form1 myForm = new Form1();
this.Close();
Form1
的新实例一旦超出范围就会被处置,关闭this
表单意味着您不再拥有任何UI。
答案 1 :(得分:0)
您在winform中接近切换按钮的最接近的事情是使用必须添加到ToolStrip的ToolStripButton。
将ToolStripButton.CheckOnClick设置为true,然后对ToolStripButton.CheckStateChangedEvent进行编码。
private void toolStripButton1_CheckStateChanged(object sender, EventArgs e)
{
// Checked means it's clicked
if (toolStripButton1.Checked)
{
if (!serialPort1.IsOpen)
{
serialPort1.Open();
toolStripButton1.Text = "Close Port";
}
}
else
{
if (serialPort1.IsOpen())
{
serialPort1.Close();
toolStripButton1.Text = "Open Port";
}
}
}