BindingSource.Position 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置基础列表中当前项的索引。
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
属性值
从零开始的索引,它指定基础列表中当前项的位置。
- 属性
示例
下面的代码示例演示 、MoveNextMoveFirst、 Current和 Position 成员。 若要运行此示例,请将代码粘贴到导入 System.Drawing.Drawing2D 命名空间并包含 BindingSource 名为 BindingSource1
的按钮 button1
的窗体中。 将 Form1_Load
和 方法与Load窗体的 和 Paint 事件相关联,并将 方法与 Click 的事件button1
相关联button1_click
Form1_Paint
。 Visual Basic 用户需要添加对 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
注解
设置 Position 属性时,将按以下方式处理范围外值:
更改属性 Position 将同样调整 Current 属性。