- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用带有 DataGridViewComboBoxColumn
的 DataGridView
,我需要在组合框项的左侧添加图标。我目前正在使用 EditingControlShowing
事件以及 ComboBox.DrawItem
事件,如下所示:
private void pFiles_dgvFiles_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox)
{
ComboBox cb = (ComboBox)e.Control;
cb.DrawMode = DrawMode.OwnerDrawFixed;
cb.DrawItem -= combobox1_DrawItem;
cb.DrawItem += combobox1_DrawItem;
}
}
private void combobox1_DrawItem(object sender, DrawItemEventArgs e)
{
// Drawing icon here
}
问题是只有当单元格处于编辑模式时才会绘制图标。只要我单击单元格外的某处,就会触发 CellEndEdit
事件并重新绘制单元格(没有图标)。
我尝试使用 DataGridView.CellPainting
事件来解决这个问题,但它会导致 DataGridViewComboBoxColumn
的下拉按钮消失。
关于用户完成单元格编辑后如何绘制图标的任何想法?
最佳答案
在您的 CellPainting 事件中,您可以尝试在现有控件上绘画:
e.PaintBackground(e.ClipBounds, true);
e.PaintContents(e.ClipBounds);
//Draw your stuff
e.Handled = true;
或查看 ComboBoxRenderer
类的 DrawDropDownButton
方法(或查看非视觉样式的 ControlPaint.DrawComboButton
)。
关于c# - DatagridViewComboBoxColumn 的自定义绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482534/
假设我拥有的数据是'valuenumber1'、'valuenumber2'、'valuenumber3'。 我有一个问题,如果'valueNumber2'或'valueNumber3'是一个问题,将
在我的 datagridview 中,当单击 datagridviewComboBoxColumn 以填充其下拉列表时,它没有显示我需要单击 2 次的下拉列表。第一次它只关注 datagridview
我有一本字典,它的键是三个字母的国家代码,值是国家的名称。 Dictionary CountryList=new Dictionary(); 我还有一个 DataGridView 和一个 DataTa
这个问题在这里已经有了答案: c# add a dgv row with a dataGridViewComboBoxCell (3 个答案) 关闭10 年前。 我有一个 DataGridView,
我正在使用带有 DataGridViewComboBoxColumn 的 DataGridView,我需要在组合框项的左侧添加图标。我目前正在使用 EditingControlShowing 事件以及
我正在使用 DataGridView 构建一个表,用户可以在其中从每个单元格的下拉列表中选择项目。为了简化问题,假设我有 1 列。我在设计器中使用 DataGridViewComboBoxColumn
我有一个带有几个 DataGridViewComboBoxColumns 的 DataGridView。 DataGridView 上有一个 CellEnter 事件处理程序,用于单击下拉组合框。 该
我正在尝试在 DataGridView 中设置一些内容。看起来这应该很简单,但我遇到了麻烦。我想显示三列: 代码ID 代号 带有 TypeName 的 DisplayMember 和 TypeID 的
在任何人将此标记为重复之前,请注意这与提出的问题不同 here , here和 here . 当您的 DataGridView 中有两个或多个 DataGridViewComboBoxColumn,并
嗨,我在运行时将数据绑定(bind)到 datagridview 组合框。但是我如何让它自动显示第一个项目呢?我无法从 DataGridViewComboBoxColumn 中找到 selectedi
我正在使用 DataGridView,它是使用设计器创建的,其中包含几列,包括 DataGridViewComboBoxColumn 列。 有点烦人的是我必须点击每个单元格两次甚至三次才能显示下拉列表
我创建了一个 DataGridView 对象,其中包含 DataGridViewComboBoxColumn 类型的列,以允许用户从下拉列表中选择值。例如,如果用户选择“高”,我想为组合框的背面着色。
我有一个 DataGridViewCobmoboxColumn那必须在屏幕的最右侧。单元格中的项目比单元格宽度宽,因此下拉列表也比单元格宽,因此用户可以看到顶部选择的内容。当列表下拉时,下拉列表的右侧
我试图用字符串列表填充 DataGridViewComboBoxColumn,然后根据它们在表单加载时的值选择其中一个。 人们认为这是一项简单的任务,但我就是做不对。 我正在用这样的字符串填充 Dat
我有一个 combobox 列的 datagridview。我填充组合框列。当我从组合框列中选择任何文本时,我需要在 for 循环中读取数据时获取值。 这里是dgFilter datagridview
假设我有两个表: work_hours work_hours_id | date | _project_id 1 1.2. 10 2
我有一个数据 GridView ,它是通过从 SQL 服务器获取数据来填充的。 gridview.Datasource = dataSet.Tables[0] -> 没问题。 在这个网格中,一列是 C
我正在编写一个小型应用程序来查看和编辑 mySQL 表。 我想将 ComboBox 输入放在 DataGridView 中,以从其他表中的外键中选择数据。 有什么方法可以做到吗? 到目前为止我只找到这
我需要检查某个值是否存在于 DataGridViewComboBoxColumn 中。问题是 DataGridViewComboBoxColumn.Items.Contains() 想要一个对象,我给
大家好,我已经将我的 datagridview 与 DataGridViewComboBoxColumn 绑定(bind)如下 DataGridViewComboBoxColumn clnStatus
我是一名优秀的程序员,十分优秀!