GridComboBox是一个用于Windows Forms应用程序的自定义控件,可以与DataGridView控件配合使用,以提供更丰富的用户交互体验。本文将详细介绍如何在项目中使用GridComboBox控件,并提供相应的代码示例。
在开始之前,请确保已经在项目中添加了GridComboBox控件。这个控件的输出是一个.dll文件,需要将这个文件添加到项目中,并像使用Windows Forms控件一样使用它。
在项目中,需要添加一个DataGridView控件。这个控件将由GridComboBox控制,特别是它的可见状态。以下是如何在项目中使用这个组件的简要说明:
using System;
using TemporalAPP.GraphicSourceDataSetTableAdapters;
using System.Data;
using System.Windows.Forms;
using static TemporalAPP.GraphicSourceDataSet;
using GridComboBox;
namespace TemporalAPP
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ArticuloArancelDataTable tabla = new ArticuloArancelDataTable();
new ArticuloArancelTableAdapter().Fill(tabla);
dataGridView1.DataSource = tabla;
// 设置DataGridView的选项
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.Columns[0].Width = 1;
accGridComboBox1.AddDataGridView(dataGridView1, false);
}
private void Form1_Shown(object sender, EventArgs e)
{
dataGridView1.Visible = true;
}
private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (accGridComboBox1.SelectedValue == null)
return;
accGridComboBox1.Text = ((DataRowView)accGridComboBox1.SelectedValue).Row["Codigo"].ToString();
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return || e.KeyCode == Keys.Enter)
{
if (accGridComboBox1.SelectedValue == null)
return;
accGridComboBox1.Text = ((DataRowView)accGridComboBox1.SelectedValue).Row["Codigo"].ToString();
}
}
}
}
DataGridView的默认可见状态是true,所以需要在GridComboBox控件上双击,直到它收缩;之后,就可以使用它了。认为这可能是一个问题。
在第一次双击GridComboBox控件后,它会收缩,然后可以选择一个项目。以下是一些关键点:
希望有人能帮助改进DataGridView的初始状态。在看来,将其设置为visibility=false会更好,以避免初始双击。