我正在使用C#制作Windows窗体,而且我对这一切都很陌生。现在,这就是我想要实现的目标:
文本框有一个默认文本集,但是当用户修改它时,我希望下次打开表单时加载修改后的文本。 (仅当选中复选框时)
我的问题是:这可能吗?如果是这样,怎么样?就像我说的那样,我对C#很新,所以即使经过很多搜索,我也无法真正找到它。这是我的代码:
using System;
using Sulakore;
using System.Linq;
using Sulakore.Habbo;
using System.Drawing;
using Kendax.Properties;
using Sulakore.Protocol;
using System.Windows.Forms;
using System.Threading.Tasks;
using Sulakore.Communication;
using Sulakore.Protocol.Encryption;
namespace Kendax
{
public partial class UpdateHeaders : Form
{
public UpdateHeaders()
{
InitializeComponent();
}
private void UpdateHeadersBtn_Click(object sender, EventArgs e)
{
HHeaders.Motto = ushort.Parse(UpdateMotto.Text);
HHeaders.Say = ushort.Parse(UpdateSay.Text);
HHeaders.Walk = ushort.Parse(UpdateWalk.Text);
HHeaders.Pong = ushort.Parse(UpdatePong.Text);
HHeaders.Dance = ushort.Parse(UpdateDance.Text);
HHeaders.Sign = ushort.Parse(UpdateSign.Text);
HHeaders.Shout = ushort.Parse(UpdateShout.Text);
HHeaders.Rotate = ushort.Parse(UpdateRotate.Text);
HHeaders.Stance = ushort.Parse(UpdateStance.Text);
HHeaders.Like = ushort.Parse(UpdateLike.Text);
HHeaders.Trade = ushort.Parse(UpdateTrade.Text);
HHeaders.Respect = ushort.Parse(UpdateRespect.Text);
HHeaders.AddFriend = ushort.Parse(UpdateAddFriend.Text);
HHeaders.Clothes = ushort.Parse(UpdateClothes.Text);
HHeaders.Gesture = ushort.Parse(UpdateGesture.Text);
HHeaders.Navigate = ushort.Parse(UpdateMotto.Text);
HHeaders.Exit = ushort.Parse(UpdateExit.Text);
HHeaders.JoinGroup = ushort.Parse(UpdateJoinGroup.Text); ;
HHeaders.LeaveGroup = ushort.Parse(UpdateLeaveGroup.Text);
HHeaders.HelpRequest = ushort.Parse(UpdateHelpRequest.Text);
HHeaders.Scratch = ushort.Parse(UpdateScratch.Text);
HHeaders.RideHorse = ushort.Parse(UpdateRideHorse.Text);
HHeaders.MakeRoom = ushort.Parse(UpdateMakeRoom.Text);
HHeaders.Facing = ushort.Parse(UpdateFacing.Text);
HHeaders.Whisper = ushort.Parse(UpdateWhisper.Text);
HHeaders.ChangeName = ushort.Parse(UpdateChangeName.Text);
}
private void ResetDefaults_Click(object sender, EventArgs e)
{
HHeaders.Motto = 3117;
HHeaders.Say = 2632;
HHeaders.Walk = 2383;
HHeaders.Pong = 516;
HHeaders.Dance = 250;
HHeaders.Sign = 3133;
HHeaders.Shout = 269;
HHeaders.Rotate = 3390;
HHeaders.Stance = 2049;
HHeaders.Like = 2947;
HHeaders.Trade = 1384;
HHeaders.Respect = 1724;
HHeaders.AddFriend = 20;
HHeaders.Clothes = 3713;
HHeaders.Gesture = 3976;
HHeaders.Navigate = 2219;
HHeaders.Exit = 2520;
HHeaders.JoinGroup = 3134;
HHeaders.LeaveGroup = 3816;
HHeaders.HelpRequest = 3540;
HHeaders.Scratch = 1292;
HHeaders.RideHorse = 3621;
HHeaders.MakeRoom = 3156;
HHeaders.Facing = 1462;
HHeaders.Whisper = 2382;
HHeaders.ChangeName = 809;
// These are the textboxes and their default values
UpdateMotto.Text = 3117.ToString();
UpdateSay.Text = 2632.ToString();
UpdateWalk.Text = 2383.ToString();
UpdatePong.Text = 516.ToString();
UpdateDance.Text = 250.ToString();
UpdateSign.Text = 3133.ToString();
UpdateShout.Text = 269.ToString();
UpdateRotate.Text = 3390.ToString();
UpdateStance.Text = 2049.ToString();
UpdateLike.Text = 2947.ToString();
UpdateTrade.Text = 1384.ToString();
UpdateRespect.Text = 1724.ToString();
UpdateAddFriend.Text = 20.ToString();
UpdateClothes.Text = 3713.ToString();
UpdateGesture.Text = 3976.ToString();
UpdateNavigate.Text = 2219.ToString();
UpdateExit.Text = 2520.ToString();
UpdateJoinGroup.Text = 3134.ToString();
UpdateLeaveGroup.Text = 3816.ToString();
UpdateHelpRequest.Text = 3540.ToString();
UpdateScratch.Text = 1292.ToString();
UpdateRideHorse.Text = 3621.ToString();
UpdateMakeRoom.Text = 3156.ToString();
UpdateFacing.Text = 1462.ToString();
UpdateWhisper.Text = 2382.ToString();
UpdateChangeName.Text = 809.ToString();
// End of textboxes and their default values
}
}
}
用户应该删除默认文本,并需要输入新文本。表单关闭时应保存该输入,并在再次打开表单时加载 IF 复选框。 ELSE ,不保存任何输入,并且在打开表单时应加载默认文本。
任何人都可以帮我这个吗?我知道这可能有点模糊,但我再一次对此我不熟悉,而且我也不是英语(我是荷兰人)。非常感谢,我真的希望有人理解我想要实现的目标。如果没有,我很抱歉!
再次提前谢谢!
更新:
好的,我已经尝试保存1个文本框的输入,这就是我所做的:
http://i.gyazo.com/950c85a0d80ce942d103dc75668094d1.png (由于声誉太低,我无法上传图片)
这是我在设置中所做的,然后是加载默认值的地方:
public UpdateHeaders()
{
InitializeComponent();
UpdateMotto.Text = Settings.Default.UpdateMotto.ToString();
}
这就是它应该保存用户输入的地方:
private void UpdateHeaders_FormClosed(object sender, FormClosedEventArgs e)
{
Settings.Default.UpdateMotto = ushort.Parse(UpdateMotto.Text);
if (RememberMe.Checked)
{
Settings.Default.Save();
Settings.Default.Reload();
}
else
{
this.Close();
}
}
它没有保存该文本框的输入,而是加载了默认输入。 .config文件已经生成但未更新,仍保留默认值。我做错了什么?
再次非常感谢:)
答案 0 :(得分:1)
如果您使用的是Visual Studio,则可以转到项目属性窗口,单击“设置”选项卡,然后添加“#34; User"在那里设置。在代码中,您使用Properties.Settings.Default来访问您添加的各个设置。
从标题到你的问题,似乎你已经走得那么远了。所以你剩下的就是,在为Default设置对象中的属性实际赋值之后,调用Save()方法。这将在用户的配置文件目录下将设置写为XML文件,并在下次同一用户运行程序时自动加载。