2010-09-28 85 views
2

我是一个学习C#的VB人。我似乎已经掌握了它,但我正在写一些关于我正在编写的代码的问题。C#关于从VB重写的问题

在这里的第一个当我写我的代码一样,所以我得到一个错误:

Irowindex = sF1411BindingSource.Find(sF1411DataSet.SF1411.Columns(groupBox4.Tag.ToString).ToString, textBox1.Text); 
     if (Irowindex == -1) 

错误1“System.Data.DataTable.Columns”是“属性”,但使用像一个 '方法' C:\ 11180_APPLICATION \ 11180_APPLICATION \ Edit.cs 186 71 11180_APPLICATION

我的另一个问题是,在VB我使用的标签,但在C#中它似乎没有像他们一样:

//Set the find label to display the new find column 
groupBox4.Text = "Find - " + sender.Tag.ToString + ":"; 
//Store the sort column name in lblFind's Tag property 
groupBox4.Tag = sender.Tag.ToString; 

错误4 '对象' 不包含 '标签' C的定义:\ 11180_APPLICATION \ 11180_APPLICATION \ Edit.cs 211 36 11180_APPLICATION

任何想法吗?

+0

谢谢!现在只有一个错误,Irowindex = sF1411BindingSource.Find [(sF1411DataSet.SF1411.Columns [“QuoteNumber”]。ToString)textBox1.Text; if(Irowindex == -1)错误是:错误语法错误,']'预计\t - 其中我有textBox1.text在。 – GabrielVa 2010-09-28 13:11:22

回答

3

尝试Columns[groupBox4.Tag.ToString()]第一个错误。

关于标签,在C#中,发件人的类型为Object,并且它没有标签属性。尝试铸造它来控制第一:

((Control)sender).Tag 
+0

谢谢!我的代码只有一个问题: – GabrielVa 2010-09-28 12:55:54

+0

// Irowindex = INVENTORYMASTERBindingSource.Find(_MISINVENTORYDataSet.RCCMIS2.Columns(“New Asset Tag”)。ToString,TextBox13.Text) Irowindex = sF1411BindingSource.Find [(sF1411DataSet.SF1411。如果(Irowindex == -1) 获取san)期望在我的.ToString,是 – GabrielVa 2010-09-28 12:57:11

+0

正如其他人所说的,.ToString()是一个方法,并且需要在它后面加括号。你写了'.ToString',但它需要写成'.ToString()' – 2010-09-28 13:15:14

0

你需要方括号(索引器)。 IOW [ ]而不是()

2

您需要用使用方括号的C#语法替换索引访问器(在VB .Columns(...)中)。

.Columns[...] 

至于其他错误。这听起来像你的控件类型为对象(在VB中延迟)。您需要将控件定义更改为使用完整类型(或者至少使用Control)...或投射到控件

2

使用ToString()而不是使用ToString。它的一种方法。

也列是一个收集和获取是通过在这种情况下,你需要使用的[],而不是指数()后

2

的ToString应该有括号。

foo.ToString() 
2

所有的方法都应该有()ToString()

所有索引应该有[] WG .Columns[...]

而且也,你可能需要键入的情况下像((TextBox)sender).Text发件人

1

对于第二个问题,sender大概是一些事件处理程序的参数...

protected void HandlerName(object sender, EventArgs e) { ... } 

如果是这种情况,并且要使用发件人其他一些类,那么你需要投这样的:

YourClass mySender = sender as YourClass; 
if (mySender != null) { 
    // Do your handling here 
} 

继@下面gabrielVa的评论,修改后的代码:

private void radioButton1_CheckedChanged(object sender, EventArgs e){ 
    RadioButton radioSender = sender as RadioButton; 
    if (radioSender != null){ 
     sF1411BindingSource.Sort = radioSender.Tag.ToString(); 
     sF1411BindingSource.MoveFirst(); 
     //Set the find label to display the new find column 
     groupBox4.Text = "Find - " + radioSender.Tag.ToString() + ":"; 
     //Store the sort column name in lblFind's Tag property 
     groupBox4.Tag = radioSender.Tag.ToString(); 
     textBox1.ReadOnly = false; 
    } 
} 
+0

这是我的代码块在这里: – GabrielVa 2010-09-28 12:48:46

+0

private void radioButton1_CheckedChanged(object sender,EventArgs e){ sF1411BindingSource.Sort = sender.Tag.ToString (); sF1411BindingSource.MoveFirst(); //设置查找标签以显示新的查找列 groupBox4.Text =“查找 - ”+ sender.Tag.ToString()+“:”; //将排序列名称存储在lblFind的标签属性 groupBox4.Tag = sender.Tag.ToString(); textBox1.ReadOnly = false; } – GabrielVa 2010-09-28 12:52:37

+0

我编辑了我的答案,以合并您的处理程序的代码。 – 2010-09-28 13:28:26