基于复选框选择填充文本框并避免重复内容
解决复选框重复添加内容到文本框的问题
原代码的问题在于每次判断复选框时,仅在复选框未勾选时清空文本框,勾选时直接追加内容——这会导致再次勾选已取消的复选框时,内容被重复追加,因为文本框没有被提前清空。
修改方案1:先清空再构建内容
每次点击按钮时,先清空文本框,再遍历所有复选框,将勾选的内容逐一添加:
' 初始化文本框为空 txtOpp.Text = "" ' 检查OM复选框,勾选则添加内容 If ChkOM.Checked Then txtOpp.Text += ChkOM.Text & Environment.NewLine End If ' 检查HSM复选框,勾选则添加内容 If ChkHSM.Checked Then txtOpp.Text += ChkHSM.Text & Environment.NewLine End If ' 可选:移除末尾多余的换行符 If Not String.IsNullOrEmpty(txtOpp.Text) Then txtOpp.Text = txtOpp.Text.TrimEnd(Environment.NewLine.ToCharArray()) End If
修改方案2:用列表收集选中项再合并
这种方式更简洁,还能自动避免多余的换行符:
Dim selectedTexts As New List(Of String) If ChkOM.Checked Then selectedTexts.Add(ChkOM.Text) End If If ChkHSM.Checked Then selectedTexts.Add(ChkHSM.Text) End If ' 用换行符连接所有选中的内容 txtOpp.Text = String.Join(Environment.NewLine, selectedTexts)
两种方案的核心逻辑都是每次点击按钮时重新生成文本框内容,而不是在原有内容上追加,从根本上避免了重复添加的问题。
内容的提问来源于stack exchange,提问作者Racime vd Berg
相关产品推荐
相关产品推荐

