[英]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.