簡體   English   中英

不包含“ foo”的定義

[英]Does not contain a definition for “foo”

我是Visual Studio C#的新手。 當我使用System.Windows.Forms中的某些方法時,會不斷收到以下錯誤

System.Windows.Forms.DataGridView不包含'foo'的定義,並且找不到擴展方法'foo'接受類型為System.Windows.Forms.DataGridView的第一個參數

我的代碼如下:

   private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
            int i;
            i = dataGridView1.CurrentRow.Index
            textBox2.Text = dataGridView1.Item(2, i).Value
    }

正如我說的,我已經不止一次看到這種錯誤,但是這是什么原因呢? 謝謝

/ EDIT:根據請求,我要添加整個項目:

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

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

            //.Designer
        dataGridView1.AllowUserToAddRows = false;
        dataGridView1.Dock = DockStyle.None;

        PopulateDataGridView();
        }
        public void PopulateDataGridView()
        {
            dataGridView1.ColumnCount = 3;
            dataGridView1.Columns[0].Name = "ID";
            dataGridView1.Columns[1].Name = "Nombre";
            dataGridView1.Columns[2].Name = "Valor";
            dataGridView1.Columns["ID"].HeaderText = "ID";
            dataGridView1.Columns["Nombre"].HeaderText = "Nombre";
            dataGridView1.Columns["Valor"].HeaderText = "Valor";

            //DataGridView.
            dataGridView1.Rows.Add(new string[] { "1", "Nachos", "3.00" });
            dataGridView1.Rows.Add(new string[] { "2", "Pelukas", "5.70" });
            dataGridView1.Rows.Add(new string[] { "3", "Fresas", "3.50" });
            dataGridView1.Rows.Add(new string[] { "4", "Mineral", "5.50" });
            dataGridView1.Rows.Add(new string[] { "5", "Mirinda", "7.80" });
            dataGridView1.Rows.Add(new string[] { "6", "Jamaica", "2.70" });

            // Autosize.
            dataGridView1.AutoResizeColumns();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.AcceptButton = button7;
            textBox1.Focus();
        }


        [BrowsableAttribute(false)]
        public DataGridViewRowCollection Rows { get; }

       private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
                int i;
                i = dataGridView1.CurrentRow.Index
                textBox2.Text = dataGridView1.Item(2, i).Value
        }

我懷疑這是這行:

textBox2.Text = dataGridView1.Item(2, i).Value

我可以從Visual Studio幫助中看到Item是DataGridView的屬性 此外,它是一個索引器,所以我希望您需要:

textBox2.Text = dataGridView1.Item[2, i].Value

即括號轉換為方括號

使用括號,它認為它必須是您要引用的函數,但它不是該類型的內置函數,因此它開始尋找擴展方法。

異常表明您正在不支持該方法的控件上使用方法( foo )。 您可以在發生這種情況的地方張貼代碼嗎?

您尚未在行尾放置分號。 這不是問題,而是其中之一。

應該看起來如下:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    int i;
    i = dataGridView1.CurrentRow.Index;
    textBox2.Text = dataGridView1.Item(2, i).Value;
}

在某處執行我首先提到的代碼。 上面發布的代碼無法生成該異常消息。

您是否嘗試過:

textBox2.Text = dataGridView1[2, i].Value;

這已經得到了回答,但是對於其他一些出現此錯誤但不是該特定類的OP,OP使用了...

我只是通過清潔解決方案並重新構建來解決錯誤。

這樣想吧。 您有一個類,例如“ Car”,它可以模擬Car的所有功能。 該錯誤告訴您的是,“汽車”無法執行您要執行的操作。 例如,Car.Fly(); 眾所周知,現在,汽車無法(當前)飛行。 因此,編譯器告訴您,不支持要求Car Fly。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM