使用标签与使用文本框

Using a Label vs using a Textbox

我有一个 C# 应用程序,我在其中使用与微控制器的串行通信来显示应用程序上的数据。我使用了一个文本框来显示数据:

  public void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {

        try
        {

            DataRec = serialPort1.ReadExisting();   
            int.TryParse(DataRec, out myTotal);
            this.BeginInvoke(new EventHandler(DisplayText)); 
        }
        catch(NullReferenceException)
        {
          //catching the exception

        }
   }

  public void DisplayText(object sender, EventArgs e)
    {

        textBox2.Text = myTotal.ToString();
    }

我还尝试使用标签代替文本框。我得到了相同的结果,但我没有看到性能有任何变化。我使用标签是因为我不想让用户认为他们可以编辑文本框中的值。

我试过寻找其中一个相对于另一个的优势。到目前为止,我看到的是:

  1. 文本框需要设置为只读,而在标签中则不需要这样做。
  2. 即使我将文本框设置为只读,光标仍然可见,而在标签中则不是。

使用标签或文本框时,在性能方面有哪些优缺点?

我可以使用标签吗?

两者各有利弊。

标签

专业人士:

  • 文本不可复制
  • 光标不变
  • 根据文本设置大小(如果自动调整大小打开,我认为它默认打开)
  • 文本右对齐选项(自动调整关闭)

缺点:

  • 文字不selectable/copy
  • 使用自动调整大小
  • ,文本可能会超出 form/parent

文本框

专业人士:

  • 文字可复制
  • 固定大小(也是一个缺点)

缺点:

  • 不自动调整大小
  • 高度不可调整(不适用于富文本框/multiline = true

我的看法:
在我看来,如果用户不应该能够复制数据,你应该使用标签。例外情况是,如果您只有 1 个不可编辑的值,而所有其他值都是文本框的,那么您应该只制作一个只读文本框。

您已经回答了自己的问题。在我看来,标签在这种情况下更合适。稍后您可能会争辩说您可能需要文本框提供的额外功能,但您应该考虑 YAGNI 原则。

至于优缺点,用户可能会认为他们能够编辑文本框中的值,他们不会在使用标签时犯这样的错误。