我对C#非常陌生,并且有过一些起伏。
我目前陷入困境,经过数小时的反复试验,我终于设法实现了保存/加载。但是,当文件加载并且我尝试继续时,计数重置为0并且我不确定如何处理此问题。 这是我的代码:
namespace WindowsFormsApp11 {
public partial class Form1 : Form {
int count = 0;
public Form1() {
InitializeComponent();
}
private void button1_MouseDown(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
count++;
label1.Text = count.ToString();
} else if (e.Button == MouseButtons.Right) {
count--;
label1.Text = count.ToString();
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e) {
Properties.Settings.Default.label = label1.Text;
Properties.Settings.Default.Save();
}
private void Form1_Load(object sender, EventArgs e) {
label1.Text = Properties.Settings.Default.label;
}
}
}
答案 0 :(得分:1)
重新加载表单时,永远不会指定count
。您只需将设置分配到label1.Text
,以便它显示在用户界面中,但是当您按下按钮时,它会返回到1(count
为0,因为这是您初始化它的内容至)。将表单加载事件更改为以下内容:
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = Properties.Settings.Default.label;
int.TryParse(label1.Text, out count);
}
int.TryParse
会查看label1.Text
(我们从设置中分配的内容)中的内容以及它是否有效int
,将其分配给{count
1}} field。
答案 1 :(得分:0)
您有一个变量int count = 0
,您可以根据用户点击来增加和减少变量count
。这完全没问题。现在,当您尝试将保存并将该变量的值应用到应用程序设置中时,您实际上并没有这样做,而是保存标签的文本,然后在加载时再次设置文本而不指定label
变量。
您需要做的是:
int
设置的类型为string
而不是Count
。count
或类似内容。label
的值。Count
或int count = 0;
private void button1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
count++;
}
else if (e.Button == MouseButtons.Right)
{
count--;
}
label1.Text = count.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
// The name of the setting here is `Count`.
// You can change it to something else if you want.
count = Properties.Settings.Default.Count;
label1.Text = count.ToString();
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
Properties.Settings.Default.Count = count;
Properties.Settings.Default.Save();
}
),并将其分配给本地变量。以下是一个插图示例:
<template>
<div id="app">
<img src="../assets/logo.png">
<router-view/>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>