我的MSDN帮助文档存在这样一个问题:上面的某些示例代码只有VB.NET版本的,没有c#版本的,比如System.Windows.Forms.BindingSource的示例。我还是喜欢c#版的,VB不太喜欢!
我又重装了一遍MSDN,把所有的语言都装上,还是这样!
不知道大家的MSDN是不是存在这样的情况?
我又重装了一遍MSDN,把所有的语言都装上,还是这样!
不知道大家的MSDN是不是存在这样的情况?
调试欢乐多
下面的代码示例演示绑定到 BindingSource 的 ListBox。BindingSource 绑定到包含字体列表的 BindingList<(Of <(T>)>)。Visual Basic 复制代码
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Public Class Form1
Inherits Form <STAThread()> _
Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1()) End Sub Public Sub New() End Sub Private textBox1 As TextBox
Private WithEvents button1 As Button
Private listBox1 As ListBox
Private components As IContainer
Private binding1 As BindingSource Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
listBox1 = New ListBox()
textBox1 = New TextBox()
binding1 = New BindingSource()
button1 = New Button()
listBox1.Location = New Point(140, 25)
listBox1.Size = New Size(123, 160)
textBox1.Location = New Point(23, 70)
textBox1.Size = New Size(100, 20)
textBox1.Text = "Wingdings"
button1.Location = New Point(23, 25)
button1.Size = New Size(75, 23)
button1.Text = "Search"
Me.ClientSize = New Size(292, 266)
Me.Controls.Add(Me.button1)
Me.Controls.Add(Me.textBox1)
Me.Controls.Add(Me.listBox1) Dim fonts As New MyFontList()
Dim i As Integer
For i = 0 To FontFamily.Families.Length - 1
If FontFamily.Families(i).IsStyleAvailable(FontStyle.Regular) Then
fonts.Add(New Font(FontFamily.Families(i), 11.0F, FontStyle.Regular))
End If
Next i
binding1.DataSource = fonts
listBox1.DataSource = binding1
listBox1.DisplayMember = "Name" End Sub
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles button1.Click If binding1.SupportsSearching <> True Then
MessageBox.Show("Cannot search the list.")
Else
Dim foundIndex As Integer = binding1.Find("Name", textBox1.Text)
If foundIndex > -1 Then
listBox1.SelectedIndex = foundIndex
Else
MessageBox.Show("Font was not found.")
End If
End If End Sub
End ClassPublic Class MyFontList
Inherits BindingList(Of Font) Protected Overrides ReadOnly Property SupportsSearchingCore() As Boolean
Get
Return True
End Get
End Property Protected Overrides Function FindCore(ByVal prop As PropertyDescriptor, _
ByVal key As Object) As Integer
' Ignore the prop value and search by family name.
Dim i As Integer
While i < Count
If Items(i).FontFamily.Name.ToLower() = CStr(key).ToLower() Then
Return i
End If
i += 1
End While Return -1
End Function
End Class
C# 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace BindingSourceExamples
{
public class Form1 : Form
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
} public Form1()
{
this.Load += new EventHandler(Form1_Load);
} private TextBox textBox1;
private Button button1;
private ListBox listBox1; private BindingSource binding1;
void Form1_Load(object sender, EventArgs e)
{
listBox1 = new ListBox();
textBox1 = new TextBox();
binding1 = new BindingSource();
button1 = new Button();
listBox1.Location = new Point(140, 25);
listBox1.Size = new Size(123, 160);
textBox1.Location = new Point(23, 70);
textBox1.Size = new Size(100, 20);
textBox1.Text = "Wingdings";
button1.Location = new Point(23, 25);
button1.Size = new Size(75, 23);
button1.Text = "Search";
button1.Click += new EventHandler(this.button1_Click);
this.ClientSize = new Size(292, 266);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.listBox1); MyFontList fonts = new MyFontList();
for (int i = 0; i < FontFamily.Families.Length; i++)
{
if (FontFamily.Families[i].IsStyleAvailable(FontStyle.Regular))
fonts.Add(new Font(FontFamily.Families[i], 11.0F, FontStyle.Regular));
}
binding1.DataSource = fonts;
listBox1.DataSource = binding1;
listBox1.DisplayMember = "Name"; }
private void button1_Click(object sender, EventArgs e)
{
if (binding1.SupportsSearching != true)
MessageBox.Show("Cannot search the list.");
else
{
int foundIndex = binding1.Find("Name", textBox1.Text);
if (foundIndex > -1)
listBox1.SelectedIndex = foundIndex;
else
MessageBox.Show("Font was not found.");
}
}
} public class MyFontList : BindingList<Font>
{ protected override bool SupportsSearchingCore
{
get { return true; }
}
protected override int FindCore(PropertyDescriptor prop, object key)
{
// Ignore the prop value and search by family name.
for (int i = 0; i < Count; ++i)
{
if (Items[i].FontFamily.Name.ToLower() == ((string)key).ToLower())
return i; }
return -1;
}
}}
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace BindingSourceExamples
{
public class Form1 : Form
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
} public Form1()
{
this.Load += new EventHandler(Form1_Load);
} private TextBox textBox1;
private Button button1;
private ListBox listBox1; private BindingSource binding1;
void Form1_Load(object sender, EventArgs e)
{
listBox1 = new ListBox();
textBox1 = new TextBox();
binding1 = new BindingSource();
button1 = new Button();
listBox1.Location = new Point(140, 25);
listBox1.Size = new Size(123, 160);
textBox1.Location = new Point(23, 70);
textBox1.Size = new Size(100, 20);
textBox1.Text = "Wingdings";
button1.Location = new Point(23, 25);
button1.Size = new Size(75, 23);
button1.Text = "Search";
button1.Click += new EventHandler(this.button1_Click);
this.ClientSize = new Size(292, 266);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.listBox1); MyFontList fonts = new MyFontList();
for (int i = 0; i < FontFamily.Families.Length; i++)
{
if (FontFamily.Families[i].IsStyleAvailable(FontStyle.Regular))
fonts.Add(new Font(FontFamily.Families[i], 11.0F, FontStyle.Regular));
}
binding1.DataSource = fonts;
listBox1.DataSource = binding1;
listBox1.DisplayMember = "Name"; }
private void button1_Click(object sender, EventArgs e)
{
if (binding1.SupportsSearching != true)
MessageBox.Show("Cannot search the list.");
else
{
int foundIndex = binding1.Find("Name", textBox1.Text);
if (foundIndex > -1)
listBox1.SelectedIndex = foundIndex;
else
MessageBox.Show("Font was not found.");
}
}
} public class MyFontList : BindingList<Font>
{ protected override bool SupportsSearchingCore
{
get { return true; }
}
protected override int FindCore(PropertyDescriptor prop, object key)
{
// Ignore the prop value and search by family name.
for (int i = 0; i < Count; ++i)
{
if (Items[i].FontFamily.Name.ToLower() == ((string)key).ToLower())
return i; }
return -1;
}
}}
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace BindingSourceExamples
{
public class Form1 : Form
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
} public Form1()
{
this.Load += new EventHandler(Form1_Load);
} private TextBox textBox1;
private Button button1;
private ListBox listBox1; private BindingSource binding1;
void Form1_Load(object sender, EventArgs e)
{
listBox1 = new ListBox();
textBox1 = new TextBox();
binding1 = new BindingSource();
button1 = new Button();
listBox1.Location = new Point(140, 25);
listBox1.Size = new Size(123, 160);
textBox1.Location = new Point(23, 70);
textBox1.Size = new Size(100, 20);
textBox1.Text = "Wingdings";
button1.Location = new Point(23, 25);
button1.Size = new Size(75, 23);
button1.Text = "Search";
button1.Click += new EventHandler(this.button1_Click);
this.ClientSize = new Size(292, 266);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.listBox1); MyFontList fonts = new MyFontList();
for (int i = 0; i < FontFamily.Families.Length; i++)
{
if (FontFamily.Families[i].IsStyleAvailable(FontStyle.Regular))
fonts.Add(new Font(FontFamily.Families[i], 11.0F, FontStyle.Regular));
}
binding1.DataSource = fonts;
listBox1.DataSource = binding1;
listBox1.DisplayMember = "Name"; }
private void button1_Click(object sender, EventArgs e)
{
if (binding1.SupportsSearching != true)
MessageBox.Show("Cannot search the list.");
else
{
int foundIndex = binding1.Find("Name", textBox1.Text);
if (foundIndex > -1)
listBox1.SelectedIndex = foundIndex;
else
MessageBox.Show("Font was not found.");
}
}
} public class MyFontList : BindingList<Font>
{ protected override bool SupportsSearchingCore
{
get { return true; }
}
protected override int FindCore(PropertyDescriptor prop, object key)
{
// Ignore the prop value and search by family name.
for (int i = 0; i < Count; ++i)
{
if (Items[i].FontFamily.Name.ToLower() == ((string)key).ToLower())
return i; }
return -1;
}
}}