C# 标签未更新,因为我正在更改值
我正在写一个小程序来管理商店和价格的基础上的项目数量。在desire功能中,我希望所有项目的总成本显示在标签中。当我更改“数量”文本框中的值时,此标签将更新。 到目前为止,我已经完成了这段代码的编写,它工作得很好,甚至变量中的值也与我想要的完全相同,但问题是,即使数量文本框中有空值,标签也不会更新。它会一直显示以前的总数,直到我更改了值,而且它似乎被上次更新的总数卡住了C# 标签未更新,因为我正在更改值,c#,.net,wpf,wpf-controls,C#,.net,Wpf,Wpf Controls,我正在写一个小程序来管理商店和价格的基础上的项目数量。在desire功能中,我希望所有项目的总成本显示在标签中。当我更改“数量”文本框中的值时,此标签将更新。 到目前为止,我已经完成了这段代码的编写,它工作得很好,甚至变量中的值也与我想要的完全相同,但问题是,即使数量文本框中有空值,标签也不会更新。它会一直显示以前的总数,直到我更改了值,而且它似乎被上次更新的总数卡住了 namespace wpfTest { public partial class MainWindow : Wind
namespace wpfTest
{
public partial class MainWindow : Window
{
List<int> myList = new List<int>();
int val1, val2;
int total;
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
qtyTxt1.IsEnabled = false;
priceTxt1.IsEnabled = false;
qtyTxt2.IsEnabled = false;
priceTxt2.IsEnabled = false;
}
private void chk1_Click(object sender, RoutedEventArgs e)
{
if (chk1.IsChecked == true)
{
qtyTxt1.IsEnabled = true;
priceTxt1.IsEnabled = true;
}
else
{
qtyTxt1.IsEnabled = false;
priceTxt1.IsEnabled = false;
qtyTxt1.Clear();
priceTxt1.Text = "@50";
}
}
private void chk2_Click(object sender, RoutedEventArgs e)
{
if (chk2.IsChecked == true)
{
qtyTxt2.IsEnabled = true;
priceTxt2.IsEnabled = true;
}
else
{
qtyTxt2.IsEnabled = false;
priceTxt2.IsEnabled = false;
qtyTxt2.Clear();
priceTxt2.Text = "@100";
}
}
private void qtyTxt1_TextChanged(object sender, TextChangedEventArgs e)
{
if (qtyTxt1.Text=="")
{
priceTxt1.Text = "@50";
val1 = 0;
}
if (qtyTxt1.Text.Length > 0)
{
priceTxt1.Text = (Convert.ToInt32(qtyTxt1.Text) * 50).ToString();
val1 = Convert.ToInt32(priceTxt1.Text);
updateTotal();
}
}
private void qtyTxt2_TextChanged(object sender, TextChangedEventArgs e)
{
if (qtyTxt2.Text.Length == 0)
{
priceTxt2.Text = "@100";
val2 = 0;
}
if (qtyTxt2.Text.Length > 0)
{
priceTxt2.Text = (Convert.ToInt32(qtyTxt2.Text) * 100).ToString();
val2 = Convert.ToInt32(priceTxt2.Text);
updateTotal();
}
}
private void updateTotal()
{
lblTotal.Content = "";
lblTotal.Content = (val1 + val2).ToString();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Total : " + total + "\n" + "Val1 : " + val1 + "\n" + "Val2 : " + val2);
}
}
}
名称空间wpfTest
{
公共部分类主窗口:窗口
{
List myList=新列表();
int val1,val2;
整数合计;
公共主窗口()
{
初始化组件();
}
已加载私有无效窗口(对象发送器、路由目标)
{
qtyTxt1.IsEnabled=false;
priceTxt1.IsEnabled=false;
qtyTxt2.IsEnabled=false;
priceTxt2.IsEnabled=false;
}
私有无效chk1_单击(对象发送方,路由目标e)
{
如果(chk1.IsChecked==true)
{
qtyTxt1.IsEnabled=true;
priceTxt1.IsEnabled=true;
}
其他的
{
qtyTxt1.IsEnabled=false;
priceTxt1.IsEnabled=false;
qtyTxt1.Clear();
priceTxt1.Text=“@50”;
}
}
私有无效chk2_单击(对象发送方,路由目标e)
{
if(chk2.IsChecked==true)
{
qtyTxt2.IsEnabled=true;
priceTxt2.IsEnabled=true;
}
其他的
{
qtyTxt2.IsEnabled=false;
priceTxt2.IsEnabled=false;
qtyTxt2.Clear();
priceTxt2.Text=“@100”;
}
}
私有void qtyTxt1_TextChanged(对象发送方,textchangedventargs e)
{
如果(qtyTxt1.Text==“”)
{
priceTxt1.Text=“@50”;
val1=0;
}
如果(qtyTxt1.Text.Length>0)
{
priceTxt1.Text=(Convert.ToInt32(qtyTxt1.Text)*50.ToString();
val1=Convert.ToInt32(priceTxt1.Text);
updateTotal();
}
}
私有void qtyTxt2_TextChanged(对象发送方,textchangedventargs e)
{
if(qtyTxt2.Text.Length==0)
{
priceTxt2.Text=“@100”;
val2=0;
}
如果(qtyTxt2.Text.Length>0)
{
priceTxt2.Text=(Convert.ToInt32(qtyTxt2.Text)*100.ToString();
val2=Convert.ToInt32(priceTxt2.Text);
updateTotal();
}
}
私有void updateTotal()
{
lblTotal.Content=“”;
lblTotal.Content=(val1+val2.ToString();
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
MessageBox.Show(“总计:“+Total+”\n“+”Val1:“+Val1+”\n“+”Val2:“+Val2”);
}
}
}
我还上传了我的Microsoft OneDrive帐户的屏幕截图,因为我在这里上传照片有限制:
第一个明显的问题是,您试图通过一个“内容”属性来更改UILabel文本,除非您自己定义它,否则该属性不存在。您应该使用“text”属性。请参阅Apple文档:
指定给标签属性文本 试试这个
lblTotal.Text = "";
lblTotal.Text = (val1 + val2).ToString();
哪个文本框显示总计?为什么会有“@”?尽量使你的代码简单,把注意力集中在你的问题上。此外,您可以尝试在CSDN中询问。先生,总计出现在标签上,而不是文本框上。和@代表时间的价格@50意味着每1个数量的价格是50。先生,我使用WPF设计程序,这里标签类不提供文本属性,但这里我们有内容属性用于相同的目的。其次,根据您的建议,我还尝试使用另一个文本框来显示GrandTotal值,而不是标签,但它有相同的问题。先生,我是在WPF中设计的,这里我没有标签的“文本”属性。根据您的建议,我还尝试使用另一个文本框来显示GrandTotal值(通过文本属性)而不是标签,但它也有同样的问题。