C#立场问题

C#立场问题,c#,C#,我在VB中得到了下面的代码,我想把它用在c中,我想我是对的,但是当我点击事件时,我只需要记录2,我的表中有几条记录 private void pictureBox2_Click(object sender, EventArgs e) { sF1411BindingSource.Position = +1; } 我回击的时候也是这样。例如,如果我在记录12上,我单击该事件并bam到第一条记录。我是一个Vb的家伙,我试图在这里自学c#,所以我可能有点过分了 private void pic

我在VB中得到了下面的代码,我想把它用在c中,我想我是对的,但是当我点击事件时,我只需要记录2,我的表中有几条记录

private void pictureBox2_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position = +1;
}
我回击的时候也是这样。例如,如果我在记录12上,我单击该事件并bam到第一条记录。我是一个Vb的家伙,我试图在这里自学c#,所以我可能有点过分了

private void pictureBox1_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position = -1;
}

谢谢

如果要增加该值,请使用+=:
Position+=1

如果要增加值,请使用+=:
位置+=1

您应该使用位置+=1;反而

Private void pictureBox2_Click(object sender, EventArgs e) { sF1411BindingSource.Position += 1; }


private void pictureBox1_Click(object sender, EventArgs e) { sF1411BindingSource.Position -= 1; }

您应该使用Position+=1;反而

Private void pictureBox2_Click(object sender, EventArgs e) { sF1411BindingSource.Position += 1; }


private void pictureBox1_Click(object sender, EventArgs e) { sF1411BindingSource.Position -= 1; }

我想你想做+=和-=:

private void pictureBox2_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position += 1;
}


我想你想做+=和-=:

private void pictureBox2_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position += 1;
}

也许你的意思是:

private void pictureBox2_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position +=1;
}  
也许你的意思是:

private void pictureBox2_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position +=1;
}  

用于递增和递减的?

+=和-=在C#和VB中是相同的


+=和-=用于递增和递减在C#和VB中是相同的


您是否希望pictureBox2_Click方法将1添加到sF1411BindingSource.Position?如果是这种情况,您需要使用。使用该键可将值减1

private void pictureBox2_Click(object sender, EventArgs e)
{
     sF1411BindingSource.Position += 1; 
}

此外,我认为在递增或递减位置之前,您可能需要检查自己是否处于最后一个位置或第一个位置。

您的目的是让pictureBox2\u Click方法将1添加到sF1411BindingSource.position中吗?如果是这种情况,您需要使用。使用该键可将值减1

private void pictureBox2_Click(object sender, EventArgs e)
{
     sF1411BindingSource.Position += 1; 
}

此外,我认为在递增或递减位置之前,您可能需要检查自己是在最后还是在第一个位置。

正如其他人正确指出的,您应该使用+=-=运算符,这些运算符由编译器转换为加法和赋值表达式:

int a = 10;
int b = 20;
a += b;
是写作的捷径

int a = 10;
int b = 20;
a = a + b;
但是,由于您只想将位置增加和减少一个,因此可以使用较短的C样式++--运算符:

private void pictureBox2_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position++;
}

private void pictureBox1_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position--;
}
这可能有点离题,但我也建议您利用C#lambda表达式进行事件处理。由于您在事件处理程序中做的不多,因此可以在构造函数中将它们定义为一行程序:

public MyForm ()
{
    InitializeComponent();

    nextRecordBox.Click += (sender, e) =>
        bindingSource.Position++;
    prevRecordBox.Click += (sender, e) =>
        bindingSource.Position--;
} 
这些功能仅从C#3.0开始提供,但您可以出于同样的目的使用C#2.0。它们节省了大量空间,避免了被单线方法占用

至于具体的例子,我建议使用MovePreviousMoveNext方法。它们也在BindingSource类中定义,并且更加详细

当用户在最后一条记录上单击“下一步”时,您可能还希望跳转到开始。 这是如何做到的:

nextRecordBox.Click += (sender, e) => {
        if (bindingSource.Position == bindingSource.Count - 1) // is last
            bindingSource.MoveFirst ();
        else bindingSource.MoveNext ();
    };
而且,请为UI元素使用好的名称

谢谢,
Dan

正如其他人正确指出的那样,您应该使用+=-=运算符,这些运算符由编译器转换为加法和赋值表达式:

int a = 10;
int b = 20;
a += b;
是写作的捷径

int a = 10;
int b = 20;
a = a + b;
但是,由于您只想将位置增加和减少一个,因此可以使用较短的C样式++--运算符:

private void pictureBox2_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position++;
}

private void pictureBox1_Click(object sender, EventArgs e)
{
    sF1411BindingSource.Position--;
}
这可能有点离题,但我也建议您利用C#lambda表达式进行事件处理。由于您在事件处理程序中做的不多,因此可以在构造函数中将它们定义为一行程序:

public MyForm ()
{
    InitializeComponent();

    nextRecordBox.Click += (sender, e) =>
        bindingSource.Position++;
    prevRecordBox.Click += (sender, e) =>
        bindingSource.Position--;
} 
这些功能仅从C#3.0开始提供,但您可以出于同样的目的使用C#2.0。它们节省了大量空间,避免了被单线方法占用

至于具体的例子,我建议使用MovePreviousMoveNext方法。它们也在BindingSource类中定义,并且更加详细

当用户单击最后一条记录上的“下一步”时,您可能还希望跳转到开始位置。 这是如何做到的:

nextRecordBox.Click += (sender, e) => {
        if (bindingSource.Position == bindingSource.Count - 1) // is last
            bindingSource.MoveFirst ();
        else bindingSource.MoveNext ();
    };
而且,请为UI元素使用好的名称

谢谢, 丹