我正在开发一个模拟浏览器登录的软件,并执行一些GET
和POST
请求,服务器有时需要访问检查代码的用户输入。
所以我创建了一个表单让用户输入检查代码,但是当我尝试将参数传递给检查代码表单时,它无法将值设置为用户在文本框中输入的内容。
这是代码CheckcodeForm.cs
public partial class CheckcodeForm : Form
{
public string pic_url;
public string ck;
public CheckcodeForm()
{
InitializeComponent();
}
public CheckcodeForm(string _ck,string pic_url)
{
InitializeComponent();
this.pic_url = pic_url;
this.ck = _ck;
pictureBox1.ImageLocation = pic_url;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
this.pictureBox1.ImageLocation = pic_url;
}
private void button1_Click(object sender, EventArgs e)
{
this.ck = this.textBox1.Text;
this.Hide();
}
}
这是新的CheckcodeForm
部分:
string _check_code = "0000";
new CheckcodeForm(_check_code,checkcodePicUrl).ShowDialog();
MessageBox.Show(_check_code);
为什么我总是收到0000的消息框?
答案 0 :(得分:2)
您正在将文本框值分配给表单中的ck
字段,因此请从那里获取:
string _check_code = "0000";
var checkcodeForm = new CheckcodeForm(_check_code,checkcodePicUrl).ShowDialog();
MessageBox.Show(checkcodeForm.ck);
顺便说一句,你是按值传递参数,而不是通过引用。查看Passing Parameters (C# Programming Guide)