2010-03-02 6 views
2

Visual Studio C#을 처음 사용합니다. 내가 'foo에'에 대한 정의없이 확장 메서드를 포함하지 않는 System.Windows.Forms"foo"에 대한 정의가 없습니다.

System.Windows.Forms.DataGridView에있는 몇 가지 방법을 사용하고 지속적으로 다음과 같은 오류가 나타날 수 '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 
    } 

내가 말했듯이, 내가 한 번 이상 이런 종류의 오류를 보았다, 하지만 그것이 왜 그런지 여기 반지? 감사

/편집

: 요청에 따라 나는 전체 프로젝트를 추가 해요로 :

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 
     } 
+2

오류 메시지의 * 실제 * 텍스트는 수정되지 않고 일부만 게시하는 것이 좋습니다. 소스 코드에는 "foo"가 없으므로 오류 메시지에 "foo"가 없어야합니다. – Gabe

+0

ok, 실제 텍스트에는 foo 대신 Item이 들어 있지만 내가 말한 것처럼 매번 발생합니다. 간단한 foo가 예증하기 위해 할 것이라고 생각했습니다. 오류 메시지를 완료하겠습니다. – agaragaragar

답변

2

는 당신이 시도 했나 :

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

나는이 단어를 쓸 때이 버전을 테스트하고있다. textBox2.Text = dataGridView1 [2, i] .Value.ToString(); – agaragaragar

+0

이전 버전의'textBox2.Text = this.dataGridView1.SelectedCells.ToString();'이 더 잘 작동했습니다. – agaragaragar

2

예외는 당신이 그것을 지원하지 않는 컨트롤하는 방법 (foo)를 사용하는 상태. 이런 일이 발생하는 곳에서 코드를 게시 할 수 있습니까?

줄 끝 부분에 세미콜론을 삽입하지 않았습니다. 문제는 아니지만 그 중 하나입니다. 과 같아야

은 다음과 같습니다 코드가 처음 언급 한 것을 실행되는 곳이

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

입니다. 위에 게시 된 코드는 예외 메시지를 생성 할 수 없습니다.

+0

방금했습니다. 그것은 질문에 추가됩니다. – agaragaragar

+0

고마워, 카일. 다시 확인해 볼게. – agaragaragar

0

이렇게 생각하십시오. 당신은 자동차의 모든 기능을 에뮬레이션하는 "Car"클래스를 가지고 있습니다. 이 오류가 말하는 것은 귀하의 "자동차"가 귀하가 수행하도록 요구하는 조치를 수행 할 수 없다는 것입니다. 예 : Car.Fly(); 자, 우리가 알다시피, 자동차는 (현재) 날 수 없습니다. 컴파일러는 Car to Fly를 요청하는 것이 지원되지 않는다고 말합니다.

3

나는이 줄을 의심 것 :

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

그 항목은 Visual Studio 도움말에서 DataGridView에의 특성입니다 볼 수 있습니다. 또한,이 인덱서, 그래서 당신이 필요로 기대 :

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

즉, 괄호는 괄호

괄호로

로 변환, 그것은 당신이 언급하는 함수해야합니다 생각하지만, 유형에 내장되어 있지 않으므로 확장 메소드를 찾기 시작합니다.

+0

실제로 Item은 인식 된 메서드 호출이 아닙니다. – cjk

0

이 이미 대답하지만 일부 다른 사람이 오류와 함께오고 있지만 영업 이익은 사용이 특정 클래스 ...

내가 청소하는 것만으로 오류를 수정되었습니다 해결책과 재건.

관련 문제