这是我现在的代码:
1。)第一部分是我现在的代码,工作正常。
2。)第二部分是我试图让我的方法做所有事情的新代码。现在我正在做主,int index = data.SelectedIndex
主要方法。
private void data_MouseMove(object sender, MouseEventArgs e)
{
int index = data.SelectedIndex; //I want to add this to my method and have a third input
data2HEX.Text = ExportUpdates.updateHexListNumbers(index, data2HEX.Text);
}
public static string updateHexListNumbers(int index, string textboxHex)
{
textboxHex = "";
int index2 = Math.Abs(index);
string strTextboxHex = index2.ToString("X");
textboxHex = strTextboxHex;
return textboxHex;
}
我尝试通过下面的新方法减少我的代码,我将ComboBox
放在方法的第二个方法中
data2HEX.Text = ExportUpdates.updateHexListNumbers(data2HEX.Text, data)
public static string updateHexListNumbers(string textboxHex, object box)
{
int index = box.SelectedIndex;
textboxHex = "";
int index2 = Math.Abs(index);
string strTextboxHex = index2.ToString("X");
textboxHex = strTextboxHex;
return textboxHex;
}
它不会让我这样做,是否有解决方法?或者我应该留下它是怎么回事?
答案 0 :(得分:1)
那是因为一个对象不是一个组合框,为什么它会有一个选定的索引呢?尝试int index =(box as ComboBox).SelectedIndex; - robert.woods
这很有效,但后来我意识到我的错误是多么愚蠢,
我不知道我可以直接添加ComboBox作为参数,
public static string updateHexListNumbers(string textboxHex, ComboBox box)
{
int index = box.SelectedIndex;
......}
工作正常,
P.S。在!!之后看到这个评论。
如果你只是将ComboBox传递给方法,那么为什么不创建方法为"公共静态字符串updateHexListNumbers(string textboxHex,ComboBox box)"在第一个例子中 - 那么你不需要投射对象。如果要将不同类型的对象传递给方法,则需要在进行强制转换之前检查类型。 - PaulF