相关文章推荐
爱搭讪的消炎药  ·  气轻PyQt6 03 ...·  1 月前    · 
暴躁的仙人球  ·  “看脸的时代林永健们该怎么办?”| 林永健答_演员·  3 月前    · 
聪明伶俐的李子  ·  『今日热映』《世界上最爱我的人》王千源谭卓限 ...·  2 年前    · 
稳重的八宝粥  ·  超战力轿跑典范 试驾第三代名爵6 ...·  2 年前    · 
szfaa  ·  电脑提示应用程序已停止工作异常代码40000 ...·  4 年前    · 
纽基  ·  锅的表面和锅底形成黑垢有怎样的危害,又有哪些 ...·  5 年前    · 
Code  ›  当复选框仍处于选中状态时,将消息保留在文本框中开发者社区
科技新闻 复选框 文本框
https://cloud.tencent.com/developer/ask/sof/104542712
傲视众生的啤酒
2 年前
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
提问
问 当复选框仍处于选中状态时,将消息保留在文本框中
Stack Overflow用户
提问于 2012-12-10 00:54:24
EN

我有3个复选框,在文本框中有相应的消息。我的老师希望消息在复选框仍处于选中状态时保留在文本框中,而在未选中时隐藏文本。在我的例子中,当我选中这3个复选框时,它们对应的3个消息将会出现,但当我取消选中其中一个复选框,而其他两个复选框仍处于选中状态时,所有消息都将消失。我的问题是,当我取消选中其中一个复选框,并且其他两个复选框仍处于选中状态时,具有其余两个复选框的相应消息将保留在其文本框中。

private void chkCarWheels_CheckedChanged(object sender, EventArgs e)
    if (chkCarWheels.Checked == true)
        lblMessage.Text = lblMessage.Text + mycar.hasWheels(4);
        lblMessage.Text = "My  " + txtName.Text + " Car";
private void chkCarAcceleration_CheckedChanged(object sender, EventArgs e)
    if (chkCarAcceleration.Checked == true)
       lblMessage.Text = lblMessage.Text + mycar.Accelerate();
        lblMessage.Text = "My  " + txtName.Text + " Car";
private void chkCarBreakpad_CheckedChanged(object sender, EventArgs e)
    if (chkCarBreakpad.Checked == true)
        lblMessage.Text = lblMessage.Text + mycar.hasBreak();
        lblMessage.Text = "My  " + txtName.Text + " Car";
}
2 153 0 票数 1
EN
c#
.net

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-10 01:19:13

看起来您需要根据复选框状态创建消息。您可以创建方法,当某个复选框的状态发生变化时,该方法将执行该工作并调用该方法。

private void chkCarWheels_CheckedChanged(object sender, EventArgs e)
    BuildMessage();
private void chkCarAcceleration_CheckedChanged(object sender, EventArgs e)
    BuildMessage();
private void chkCarBreakpad_CheckedChanged(object sender, EventArgs e)
    BuildMessage();
}

或者更好的方法-为所有复选框创建一个事件处理程序

// use for chkCarWheels, chkCarAcceleration, chkCarBreakpad
private void chkCar_CheckedChanged(object sender, EventArgs e)
    BuildMessage();
private void BuildMessage()
    lblMessage.Text = "My  " + txtName.Text + " Car";
    if (chkCarWheels.Checked)
        lblMessage.Text = lblMessage.Text + mycar.hasWheels(4);
    if (chkCarAcceleration.Checked)
       lblMessage.Text = lblMessage.Text + mycar.Accelerate();
    if (chkCarBreakpad.Checked)
       lblMessage.Text = lblMessage.Text + mycar.hasBreak();
}

您不需要将布尔值与true/false进行比较。直接使用这些值 if (chkCarWheels.Checked) 。请记住,在C#中,我们使用CamelCase名称表单方法。还可以考虑使用 StringBuilder 构建整个消息,然后将其分配给label:

private void BuildMessage()
    StringBuilder sb = new StringBuilder();
    sb.AppendFormat("My {0} Car", txtName.Text);
    if (chkCarWheels.Checked)
        sb.Append(mycar.hasWheels(4));
    if (chkCarAcceleration.Checked)
       sb.Append(mycar.Accelerate());
    if (chkCarBreakpad.Checked)
       sb.Append((mycar.hasBreak());
    lblMessage.Text = sb.ToString();
} 
票数 0
EN

Stack Overflow用户

发布于 2012-12-10 01:21:08

试试这个:

    private void chkCarWheels_CheckedChanged(object sender, EventArgs e)
        chkCar();
    private void chkCarAcceleration_CheckedChanged(object sender, EventArgs e)
        chkCar();
    private void chkCarBreakpad_CheckedChanged(object sender, EventArgs e)
       chkCar()
private void chkCar()
string msg="";
if (chkCarWheels.Checked)
msg=msg+mycar.hasWheels(4);
if(chkCarAcceleration.Checked)
msg=msg+mycar.Accelerate();
 
推荐文章
爱搭讪的消炎药  ·  气轻PyQt6 03 文本框(QLineEdit)密码 -
1 月前
暴躁的仙人球  ·  “看脸的时代林永健们该怎么办?”| 林永健答_演员
3 月前
聪明伶俐的李子  ·  『今日热映』《世界上最爱我的人》王千源谭卓限时救女,为爱犯险!_女儿_欧立春_丁一
2 年前
稳重的八宝粥  ·  超战力轿跑典范 试驾第三代名爵6 PHEV-新浪汽车
2 年前
szfaa  ·  电脑提示应用程序已停止工作异常代码40000015如何解决_thanklife的专栏-CSDN博客
4 年前
纽基  ·  锅的表面和锅底形成黑垢有怎样的危害,又有哪些解决方法
5 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号