加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 尝试从文本框中获取int时出错

发布时间:2020-12-16 00:23:36 所属栏目:百科 来源:网络整理
导读:我是C#的新手和一般的编程.我能够在Console中创建所需的程序,但也想让一个人使用Forms.我试图从文本框中获取int时遇到问题. 在调试时我收到错误: Error 3 ‘int’ does not contain a definition for ‘Text’ and no extension method ‘Text’ accepting
我是C#的新手和一般的编程.我能够在Console中创建所需的程序,但也想让一个人使用Forms.我试图从文本框中获取int时遇到问题.

在调试时我收到错误:

Error 3 ‘int’ does not contain a definition for ‘Text’ and no extension method ‘Text’ accepting a first argument of type ‘int’ could be found (are you missing a using directive or an assembly reference?) D:DropboxClassworkC_SharpInProgressPaintDeterminatorPaint Determinator FormPaint Determinator FormForm1.cs 30 57 Paint Determinator Form

这是我到目前为止编写的代码.

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;

namespace Paint_Determinator_Form
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender,EventArgs e)
        {
            int LengthtextBox;
            int WidthtextBox;
            int HeighttextBox;
            int paint;
            int answer;

                LengthtextBox = int.Parse(LengthtextBox.Text);
                WidthtextBox = int.Parse(WidthtextBox.Text);
                HeighttextBox = int.Parse(HeighttextBox.Text);
                paint = 350;

                answer = (LengthtextBox * WidthtextBox * HeighttextBox) / paint;

                MessageBox.Show( answer.ToString() );

        }

    }
}

namespace Paint_Determinator_Form
{
    partial class Form1
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise,false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.label3 = new System.Windows.Forms.Label();
            this.label4 = new System.Windows.Forms.Label();
            this.WidthtextBox = new System.Windows.Forms.TextBox();
            this.HeighttextBox = new System.Windows.Forms.TextBox();
            this.LengthtextBox = new System.Windows.Forms.TextBox();
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(28,29);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(454,13);
            this.label1.TabIndex = 0;
            this.label1.Text = "Welcome to Paint Determinator! Please enter the measurements in the appropriate f" +
    "ields below!";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(28,91);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(35,13);
            this.label2.TabIndex = 1;
            this.label2.Text = "Width";
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(28,139);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(38,13);
            this.label3.TabIndex = 2;
            this.label3.Text = "Height";
            // 
            // label4
            // 
            this.label4.AutoSize = true;
            this.label4.Location = new System.Drawing.Point(28,183);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(40,13);
            this.label4.TabIndex = 3;
            this.label4.Text = "Length";
            // 
            // WidthtextBox
            // 
            this.WidthtextBox.Location = new System.Drawing.Point(175,83);
            this.WidthtextBox.Name = "WidthtextBox";
            this.WidthtextBox.Size = new System.Drawing.Size(100,20);
            this.WidthtextBox.TabIndex = 5;
            // 
            // HeighttextBox
            // 
            this.HeighttextBox.Location = new System.Drawing.Point(175,131);
            this.HeighttextBox.Name = "HeighttextBox";
            this.HeighttextBox.Size = new System.Drawing.Size(100,20);
            this.HeighttextBox.TabIndex = 6;
            // 
            // LengthtextBox
            // 
            this.LengthtextBox.Location = new System.Drawing.Point(175,183);
            this.LengthtextBox.Name = "LengthtextBox";
            this.LengthtextBox.Size = new System.Drawing.Size(100,20);
            this.LengthtextBox.TabIndex = 7;
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(349,402);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75,23);
            this.button1.TabIndex = 9;
            this.button1.Text = "Paint";
            this.button1.UseVisualStyleBackColor = true;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F,13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(511,447);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.LengthtextBox);
            this.Controls.Add(this.HeighttextBox);
            this.Controls.Add(this.WidthtextBox);
            this.Controls.Add(this.label4);
            this.Controls.Add(this.label3);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.label1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.TextBox WidthtextBox;
        private System.Windows.Forms.TextBox HeighttextBox;
        private System.Windows.Forms.TextBox LengthtextBox;
        private System.Windows.Forms.Button button1;
    }

解决方法

为什么要像你的文本框一样命名你的注册?这确实是一种不好的做法,并且在极端情况下令人困惑.如您所见,编译器认为您使用的是int变量而不是文本框,并且抱怨int类型没有名为Text的属性.

因此,只需在click方法中更改int的名称即可

private void button1_Click(object sender,EventArgs e)
   {
        int l;
        int w;
        int h;
        int paint;
        int answer;

        l = int.Parse(LengthtextBox.Text);
        w = int.Parse(WidthtextBox.Text);
        h = int.Parse(HeighttextBox.Text);
        paint = 350;

        answer = (l * w * h) / paint;

         MessageBox.Show( answer.ToString() );
    }

说,我建议使用Int32.TryParse将用户输入的数据转换为有效整数.如果您的用户键入无法转换为整数的内容,Parse方法将抛出异常,而TryParse返回false而没有代价高昂的异常

例如

int l;
  if(!Int32.TryParse(LengthtextBox.Text,out l))
  {
       MessageBox.Show("Please type a valid number for Length");
       return;
  }

When the Int32.TryParse returns,the out parameter (l) contains the 32-bit signed integer value equivalent of the number contained in your textbox,if the conversion succeeds,or zero if the conversion fails

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读