
掌握Visual C# 2005:ComboBox高级使用技巧详解
下载需积分: 3 | 2.7MB |
更新于2025-06-26
| 191 浏览量 | 举报
收藏
### Visual C# 2005编程技巧大全源代码(第二部分)
#### 1. 枚举成员填充ComboBox
在Visual C# 2005中,可以通过枚举类型来填充ComboBox控件。首先,我们需要定义一个枚举类型,枚举成员就是ComboBox的选项。在窗体加载事件中,通过遍历枚举值并将其添加到ComboBox的Items集合中实现填充。
```csharp
public partial class Form1 : Form
{
// 定义枚举类型
public enum ColorEnum { Red, Green, Blue }
public Form1()
{
InitializeComponent();
// 填充ComboBox
comboBox1.Items.AddRange(Enum.GetNames(typeof(ColorEnum)));
}
}
```
#### 2. 使用ArrayList填充ComboBox
使用ArrayList填充ComboBox是一种灵活的方式,可以根据实际需要动态添加数据。首先创建ArrayList实例,然后添加字符串或其他对象,最后将这些数据添加到ComboBox中。
```csharp
ArrayList list = new ArrayList();
list.Add("选项1");
list.Add("选项2");
list.Add("选项3");
comboBox1.Items.AddRange(list.ToArray());
```
#### 3. 使用数据库字段填充ComboBox
当需要根据数据库中的字段来填充ComboBox时,通常会用到ADO.NET技术。查询数据库获取数据后,遍历结果集并将数据添加到ComboBox中。
```csharp
string connectionString = "Data Source=数据库地址;Initial Catalog=数据库名;User ID=用户名;Password=密码";
SqlConnection connection = new SqlConnection(connectionString);
try
{
connection.Open();
string query = "SELECT 字段名 FROM 表名";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
comboBox1.Items.Add(reader["字段名"].ToString());
}
reader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
```
#### 4. 实现ComboBox的自动完成功能
ComboBox控件本身不支持自动完成功能,但可以通过组合使用TextBox和ComboBox来实现。通常需要设置ComboBox的`DropDownStyle`属性为`ComboBoxStyle.DropDownList`,然后处理TextBox的`TextChanged`事件来动态筛选ComboBox的项。
```csharp
private void textBox1_TextChanged(object sender, EventArgs e)
{
string filter = textBox1.Text;
comboBox1.Items.Clear();
foreach (string item in originalComboBoxItems)
{
if (item.StartsWith(filter))
{
comboBox1.Items.Add(item);
}
}
comboBox1.DroppedDown = true;
}
```
#### 5. 使用文件目录名自动完成ComboBox
使用文件目录名自动完成ComboBox需要遍历文件系统中的目录,并动态添加到ComboBox中。可以使用`System.IO`命名空间下的`DirectoryInfo`类来实现。
```csharp
DirectoryInfo dir = new DirectoryInfo(@"C:\文件夹路径");
foreach (DirectoryInfo subDir in dir.GetDirectories())
{
comboBox1.Items.Add(subDir.Name);
}
```
#### 6. 禁止用户在ComboBox中输入数据
要禁止用户在ComboBox中输入数据,需要将ComboBox的`DropDownStyle`属性设置为`ComboBoxStyle.DropDownList`,这样ComboBox会显示一个下拉列表,不允许用户直接输入。
```csharp
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
```
#### 7. 在两个TextBox中拖放文字串
在Windows窗体应用程序中,可以利用拖放功能来实现文字串在两个TextBox之间的传递。主要涉及到几个事件:`MouseDown`、`MouseMove`、`MouseUp`和`DragDrop`。需要将源TextBox设置为允许拖放(`AllowDrop = true`),并在`MouseDown`事件中启动拖放操作。
```csharp
private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
string text = textBox1.Text;
DataObject data = new DataObject(typeof(string), text);
DragDropEffects effects = DoDragDrop(data, DragDropEffects.Copy);
}
}
private void textBox2_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(string)))
{
textBox2.Text = e.Data.GetData(typeof(string)).ToString();
}
}
```
#### 总结
以上是根据提供的文件信息所整理的Visual C# 2005编程技巧中有关ComboBox控件使用的一些关键知识点。从枚举填充到动态数据填充、自动完成以及拖放操作等,这些技巧能够帮助开发者有效提升程序界面的友好性和交互性。理解和掌握这些知识点对于开发具有丰富用户交互体验的应用程序至关重要。
相关推荐










冰蓝
- 粉丝: 7
最新资源
- QQ2008聊天工具的开源代码分享
- 深入探索VC打印预览源码学习
- 基于ARM9的指纹识别系统开发与实现
- Java实现的经典游戏泡泡龙源代码
- 金山WPS与永中Office办公模板免费下载
- SQL函数集:全面涵盖交叉表及日期函数
- 遗传算法最新发布版本毕业论文解析
- 深入探索Linux/UNIX系统中的POSIX标准手册
- ExtJS结合.NET实现动态树形结构与页面展示
- C#精美时钟制作教程与源码分享
- SQLServer2005教程全攻略与实践指南
- C++实现camshift算法运动物体跟踪应用
- LDAP浏览器:测试与内容查看工具
- 深入学习ASP技术的全面教程
- 迷你实用型Flash播放器,仅四百多KB
- 学生管理系统三层结构设计与实现
- Oracle教程:安装、开发及练习题全面解析
- C++程序员的数据结构与算法分析
- 小型VC网络聊天室源代码的课程实践指南
- C#网络应用高级编程教程与源代码
- C#导航菜单窗体源代码教程
- Delphi实现的AES加密源码与应用演示
- 使用SSH框架实现留言管理系统的开发
- 网页美工案例教程:图设计、动画及JavaScript应用指南