BindingSource.Position Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o índice do item atual na lista subjacente.
public:
property int Position { int get(); void set(int value); };
[System.ComponentModel.Browsable(false)]
public int Position { get; set; }
[<System.ComponentModel.Browsable(false)>]
member this.Position : int with get, set
Public Property Position As Integer
Valor da propriedade
Um índice baseado em zero que especifica a posição do item atual na lista subjacente.
- Atributos
Exemplos
O exemplo de código a seguir demonstra os MoveNextmembros , MoveFirst, Currente Position . Para executar este exemplo, cole o código em um formulário que importe o System.Drawing.Drawing2D namespace e contenha um BindingSource nome BindingSource1
e um botão chamado button1
. Associe os Form1_Load
métodos e Form1_Paint
aos Load eventos e Paint para o formulário e associe o button1_click
método ao Click evento para button1
. Os usuários do Visual Basic precisarão adicionar uma referência a System.Data.dll.
void Form1_Load(Object^ sender, EventArgs^ e)
{
// Set the data source to the Brush type and populate
// bindingSource1; with some brushes.
bindingSource1->DataSource = System::Drawing::Brush::typeid;
bindingSource1->Add(
gcnew TextureBrush(gcnew Bitmap(Button::typeid, "Button.bmp")));
bindingSource1->Add(gcnew HatchBrush(HatchStyle::Cross, Color::Red));
bindingSource1->Add(gcnew SolidBrush(Color::Blue));
}
private:
void moveNextButton_Click(Object^ sender, EventArgs^ e)
{
// If you are not at the end of the list, move to the next item
// in the BindingSource.
if (bindingSource1->Position + 1 < bindingSource1->Count)
{
bindingSource1->MoveNext();
}
// Otherwise, move back to the first item.
else
{
bindingSource1->MoveFirst();
}
// Force the form to repaint.
this->Invalidate();
}
void Form1_Paint(Object^ sender, PaintEventArgs^ e)
{
// Get the current item in the BindingSource.
Brush^ item = (Brush^) bindingSource1->Current;
// If the current type is a TextureBrush, fill an ellipse.
if (item->GetType() == TextureBrush::typeid)
{
e->Graphics->FillEllipse(item,e->ClipRectangle);
}
// If the current type is a HatchBrush, fill a triangle.
else if (item->GetType() == HatchBrush::typeid)
{
e->Graphics->FillPolygon(item,
gcnew array<Point> {*gcnew Point(0, 0),
*gcnew Point(0, 200),
*gcnew Point(200, 0)});
}
// Otherwise, fill a rectangle.
else
{
e->Graphics->FillRectangle(
(Brush^)bindingSource1->Current, e->ClipRectangle);
}
}
void Form1_Load(object sender, EventArgs e)
{
// Set the data source to the Brush type and populate
// BindingSource1 with some brushes.
BindingSource1.DataSource = typeof(System.Drawing.Brush);
BindingSource1.Add(
new TextureBrush(new Bitmap(typeof(Button), "Button.bmp")));
BindingSource1.Add(new HatchBrush(HatchStyle.Cross, Color.Red));
BindingSource1.Add(new SolidBrush(Color.Blue));
}
private void button1_Click(object sender, EventArgs e)
{
// If you are not at the end of the list, move to the next item
// in the BindingSource.
if (BindingSource1.Position + 1 < BindingSource1.Count)
BindingSource1.MoveNext();
// Otherwise, move back to the first item.
else
BindingSource1.MoveFirst();
// Force the form to repaint.
this.Invalidate();
}
void Form1_Paint(object sender, PaintEventArgs e)
{
// Get the current item in the BindingSource.
Brush item = (Brush)BindingSource1.Current;
// If the current type is a TextureBrush, fill an ellipse.
if (item.GetType() == typeof(TextureBrush))
e.Graphics.FillEllipse(item,
e.ClipRectangle);
// If the current type is a HatchBrush, fill a triangle.
else if (item.GetType() == typeof(HatchBrush))
e.Graphics.FillPolygon(item,
new Point[] { new Point(0, 0), new Point(0, 200),
new Point(200, 0)});
// Otherwise, fill a rectangle.
else
e.Graphics.FillRectangle(
(Brush)BindingSource1.Current, e.ClipRectangle);
}
Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
Handles Me.Load
' Set the data source to the Brush type and populate
' BindingSource1 with some brushes.
BindingSource1.DataSource = GetType(System.Drawing.Brush)
BindingSource1.Add(New TextureBrush(New Bitmap(GetType(Button), _
"Button.bmp")))
BindingSource1.Add(New HatchBrush(HatchStyle.Cross, Color.Red))
BindingSource1.Add(New SolidBrush(Color.Blue))
End Sub
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles button1.Click
' If you are not at the end of the list, move to the next item
' in the BindingSource.
If BindingSource1.Position + 1 < BindingSource1.Count Then
BindingSource1.MoveNext()
' Otherwise, move back to the first item.
Else
BindingSource1.MoveFirst()
End If
' Force the form to repaint.
Me.Invalidate()
End Sub
Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
' Get the current item in the BindingSource.
Dim item As Brush = CType(BindingSource1.Current, Brush)
' If the current type is a TextureBrush, fill an ellipse.
If item.GetType().Equals(GetType(TextureBrush)) Then
e.Graphics.FillEllipse(item, _
e.ClipRectangle)
' If the current type is a HatchBrush, fill a triangle.
ElseIf item.GetType().Equals(GetType(HatchBrush)) Then
e.Graphics.FillPolygon(item, New Point() _
{New Point(0, 0), New Point(0, 200), New Point(200, 0)})
' Otherwise, fill a rectangle.
Else
e.Graphics.FillRectangle(item, e.ClipRectangle)
End If
End Sub
Comentários
Ao definir a Position propriedade, os valores fora do intervalo são tratados da seguinte maneira:
Valores negativos são tratados como 0.
Valores maiores ou iguais a Count são tratados como Count menos 1.
Alterar a Position propriedade ajustará a propriedade da Current mesma forma.