-2

我有一个带有 2 个复选框和 3 个按钮的表单。单击 Button3 时,程序检查是否选中了 checkbox1,如果选中,则文本框 1 的值更改为“Hello”。如果复选框 2 被选中,则值更改为“请帮助”。

using System;   
using System.Collections.Generic;   
using System.ComponentModel;    
using System.Data;  
using System.Drawing;   
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;   
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text += "a";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text += "b";
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }

        private void button3_Click(object sender, EventArgs e)
        {
            If (checkBox1.Checked = true ) ;
            { 
                textBox1.Text += ("hello ");
            }

            If(checkBox2.Checked = true);
            {
                textBox1.Text += ("hello ");
            }

            txtRun = new TextBox();
            txtRun.Name = "txtDynamic";
            txtRun.Location = new System.Drawing.Point(20, 18);
            txtRun.Size = new System.Drawing.Size(200, 25);
            // Add the textbox control to the form's control collection               
            this.Controls.Add(txtRun);
        }

        private void bindingNavigatorMovePreviousItem_Click(object sender, EventArgs e)
        {
        }
    }
}
4

4 回答 4

2

删除;所有 if 语句行并执行以下操作

if (checkBox1.Checked) 
{ 
    textBox1.Text = "hello ";
}

if(checkBox2.Checked)
{
    textBox1.Text = "please help";
}

如果你做这样的事情yourTextBox.Text +="something"会附加something到当前的文本框文本。

如果您需要替换或完全更改文本框文本,您可以这样做yourTextBox.Text ="something"(没有+

你有动态控制但找不到它的声明

txtRun = new TextBox();

将其更改为

TextBox txtRun = new TextBox();
于 2013-06-05T02:54:06.390 回答
0

我不知道为什么是这个问题,但是你在 if 语句中有一个问题,请注意,在这种情况下你也有问题,程序只运行“;” 如果 if 的结果为真,则句子...删除;

        If (checkBox1.Checked == true ) 
        { 
            textBox1.Text += ("hello ");
        }

        If(checkBox2.Checked == true)
        {
            textBox1.Text += ("hello ");
        }
于 2013-06-05T02:58:43.770 回答
0

如果 button3_Click 处理程序中的语句是错误的 它必须像

    if (checkBox1.Checked == true ) //or if (checkBox1.Checked)
    { 
        textBox1.Text += ("Hello ");
    }

    if(checkBox2.Checked == true) //or if (checkBox2.Checked)
    {
        textBox1.Text += ("please help ");
    }

删除“if”末尾的分号。

希望这可以帮助。

于 2013-06-05T02:54:23.810 回答
0

以下代码将完成此操作

单击 Button3 时,程序检查是否选中了 checkbox1,如果选中,则文本框 1 的值更改为“Hello”。如果复选框 2 被选中,则值更改为“请帮助”。

    private void button3_Click(object sender, EventArgs e)
    {
        if(checkBox1.Checked)textBox1.Text = ("Hello");
        if(checkBox2.Checked)textBox1.Text = ("Please Help");
    }

出于某种原因,我觉得您的问题不完整,我只能准确回答您的问题,如果您还想完成其他任何事情,请向我提供更多详细信息,我很乐意扩展我的答案。

另外,当您在原始代码中动态创建该文本框时(我可能添加的内容在您的问题中根本没有解决)作为旁注,它会不断在彼此下方创建无限数量的文本框,因为每次您点击它创建的按钮另一个在同一个地方。

于 2013-06-05T03:15:25.937 回答