C# C按钮单击和取消单击操作
我有一个Buttonname:open端口,当它单击执行以下代码时:C# C按钮单击和取消单击操作,c#,winforms,C#,Winforms,我有一个Buttonname:open端口,当它单击执行以下代码时: private void button1_Click(object sender, EventArgs e) { try { if (!serialPort1.IsOpen) { serialPort1.Open(); } else { Message
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();
您能帮助我吗?如果您只需要一个按钮来切换端口的打开和关闭,则只需执行以下操作即可:
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的这个新实例一旦超出范围就会被释放,关闭此表单意味着您不再有任何UI。在winform中,最接近切换按钮的是使用必须添加到ToolStrip的ToolStripButton 将ToolStripButton.CheckOnClick设置为true,然后对ToolStripButton.CheckStateChangeEvent进行编码
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";
}
}
}
这是WPF或Win表单还是其他形式?为什么需要创建新表单?已经打开的有什么问题?您可以在try/catch中添加finally,在if/else之后将action2添加到try语句中有问题吗?非常感谢,我现在要完成我的项目,我想打开windows资源管理器并选择一个文本,然后将其放入文本框中,这对我来说很好,但是,如果我没有选择一个文件,它表明我的错误空路径名是不合法的,我应该怎么做来解决这个问题?OpenFileDialog of=新建OpenFileDialog;of.ShowDialog;StreamReader sr=新的StreamReaderof.FileName;richTextBox1.Text=sr.ReadToEnd;正如错误所说,路径名不能为空。确保已设置.FileName或其他一些路径属性。另外,别忘了如果答案有助于解决您的问题,您应该单击向上/向下投票箭头下方的接受复选标记。谢谢,伙计,我知道这个问题,我将向我的导师演示,正如您所看到的,我们可以复制/粘贴输入,或者,如果我们存储为文本,我们可以直接访问它。因此,如果我打开windows资源管理器,但我没有选择任何文件,我希望显示一个messagebox,而不是程序停止调试,我如何编写它@哦,很抱歉打扰你,但是在接下来的7天里我不能问任何问题:如果我理解你想要什么,听起来你只需要在尝试打开它之前检查一下文件名。如果字符串文件名为空或不存在,或者您有任何其他参数,则显示消息框,否则打开该文件。