快速说明 - 我是 c# 的新手,所以如果这太简单了,我深表歉意。
我很难尝试在书中完成一个简单的 C# 任务。
伪代码-
文本框文本=用户输入
如果按钮一被点击 用星号替换文本框中的所有大写字母
否则如果按钮二被点击 用原来的字符替换星号(恢复正常)
这是我目前的情况
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;
using System.Text.RegularExpressions;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button1.Click += new System.EventHandler(ClickedButton);
button2.Click += new System.EventHandler(ClickedButton);
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void ClickedButton(object sender, EventArgs e)
{
string orignalText = textBox1.Text;
if (sender == button1)
{
string replaced = Regex.Replace(orignalText, @"[A-Z]", "*");
textBox1.Text = (replaced);
}
else if (sender == button2)
{
textBox1.Text = (orignalText);
}
}
}
}
问题是 button2 显示带有星号的文本。它应该显示(我希望它显示)原始字符。
originalText
应该是类字段而不是局部变量。此外,如果有人单击了 button2
,则不应存储文本框的值。尝试将您的 ClickedButton
方法替换为:
string orignalText;
public void ClickedButton(object sender, EventArgs e)
{
if (sender == button1)
{
orignalText = textBox1.Text;
string replaced = Regex.Replace(orignalText, @"[A-Z]", "*");
textBox1.Text = replaced;
}
else if (sender == button2)
{
textBox1.Text = orignalText;
}
}
我是一名优秀的程序员,十分优秀!