有没有办法实现的WinForms一个经过组合框的简单方法 [英] Is there a simple way to implement a Checked Combobox in WinForms

查看:272
本文介绍了有没有办法实现的WinForms一个经过组合框的简单方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道一个简单的实现中的WinForms选中的组合框的?我一直无法使用Google的时候发现任何东西。

Does anyone know of a simple implementation of a checked combobox in WinForms? I haven't been able to find anything when googling.

我想要的东西,行为像这样的窗口计划任务触发编辑:

I want something that behaves like this windows scheduled task trigger edit:

推荐答案

下面是你想要什么,我只是美元的自己结果C $ CD此
这个概念非常简单,使用面板,然后添加到复选框它。然后
强制组合框来禁用它的下拉菜单中,但仍可以点击它的向下箭头。使用下拉 DropDownClosed 组合框的事件。当您组合框的列表中向下设置面板中的可见属性,隐藏它,当你关闭下拉的组合框。

Here is what you want, I just coded this by myself
The concept is really simple, use a panel and add checkboxes onto it. Then force the combo box to disable it's drop down menu but still you can click on its down arrow. Use DropDown and DropDownClosed events of the combo box. When you make the combo box's list down set panel's Visible property to True, hide it when you close the drop down of the combo box.

//designer class

// 
// comboBox1
// 
this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.comboBox1.DropDownHeight = 1;
this.comboBox1.DropDownWidth = 1;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.IntegralHeight = false;
this.comboBox1.Location = new System.Drawing.Point(256, 371);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(238, 21);
this.comboBox1.TabIndex = 5;
this.comboBox1.DropDown += new System.EventHandler(this.comboBox1_DropDown);
this.comboBox1.DropDownClosed += new System.EventHandler(this.comboBox1_DropDownClosed);
// 
// panel1
// 
this.panel1.BackColor = System.Drawing.Color.White;
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel1.Controls.Add(this.checkBox9);
this.panel1.Controls.Add(this.checkBox8);
this.panel1.Controls.Add(this.checkBox7);
this.panel1.Controls.Add(this.checkBox6);
this.panel1.Controls.Add(this.checkBox5);
this.panel1.Controls.Add(this.checkBox4);
this.panel1.Controls.Add(this.checkBox3);
this.panel1.Controls.Add(this.checkBox2);
this.panel1.Controls.Add(this.checkBox1);
this.panel1.Location = new System.Drawing.Point(252, 394);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(245, 68);
this.panel1.TabIndex = 6;
// 
// checkBox9
// 
this.checkBox9.AutoSize = true;
this.checkBox9.Location = new System.Drawing.Point(162, 48);
this.checkBox9.Name = "checkBox9";
this.checkBox9.Size = new System.Drawing.Size(80, 17);
this.checkBox9.TabIndex = 9;
this.checkBox9.Text = "checkBox9";
this.checkBox9.UseVisualStyleBackColor = true;
// 
// checkBox8
// 
this.checkBox8.AutoSize = true;
this.checkBox8.Location = new System.Drawing.Point(162, 27);
this.checkBox8.Name = "checkBox8";
this.checkBox8.Size = new System.Drawing.Size(80, 17);
this.checkBox8.TabIndex = 8;
this.checkBox8.Text = "checkBox8";
this.checkBox8.UseVisualStyleBackColor = true;
// 
// checkBox7
// 
this.checkBox7.AutoSize = true;
this.checkBox7.Location = new System.Drawing.Point(162, 4);
this.checkBox7.Name = "checkBox7";
this.checkBox7.Size = new System.Drawing.Size(80, 17);
this.checkBox7.TabIndex = 7;
this.checkBox7.Text = "checkBox7";
this.checkBox7.UseVisualStyleBackColor = true;
// 
// checkBox6
// 
this.checkBox6.AutoSize = true;
this.checkBox6.Location = new System.Drawing.Point(82, 47);
this.checkBox6.Name = "checkBox6";
this.checkBox6.Size = new System.Drawing.Size(80, 17);
this.checkBox6.TabIndex = 5;
this.checkBox6.Text = "checkBox6";
this.checkBox6.UseVisualStyleBackColor = true;
// 
// checkBox5
// 
this.checkBox5.AutoSize = true;
this.checkBox5.Location = new System.Drawing.Point(82, 26);
this.checkBox5.Name = "checkBox5";
this.checkBox5.Size = new System.Drawing.Size(80, 17);
this.checkBox5.TabIndex = 4;
this.checkBox5.Text = "checkBox5";
this.checkBox5.UseVisualStyleBackColor = true;
// 
// checkBox4
// 
this.checkBox4.AutoSize = true;
this.checkBox4.Location = new System.Drawing.Point(82, 4);
this.checkBox4.Name = "checkBox4";
this.checkBox4.Size = new System.Drawing.Size(80, 17);
this.checkBox4.TabIndex = 3;
this.checkBox4.Text = "checkBox4";
this.checkBox4.UseVisualStyleBackColor = true;
// 
// checkBox3
// 
this.checkBox3.AutoSize = true;
this.checkBox3.Location = new System.Drawing.Point(3, 47);
this.checkBox3.Name = "checkBox3";
this.checkBox3.Size = new System.Drawing.Size(80, 17);
this.checkBox3.TabIndex = 2;
this.checkBox3.Text = "checkBox3";
this.checkBox3.UseVisualStyleBackColor = true;
// 
// checkBox2
// 
this.checkBox2.AutoSize = true;
this.checkBox2.Location = new System.Drawing.Point(4, 24);
this.checkBox2.Name = "checkBox2";
this.checkBox2.Size = new System.Drawing.Size(80, 17);
this.checkBox2.TabIndex = 1;
this.checkBox2.Text = "checkBox2";
this.checkBox2.UseVisualStyleBackColor = true;
// 
// checkBox1
// 
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(4, 4);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(80, 17);
this.checkBox1.TabIndex = 0;
this.checkBox1.Text = "checkBox1";
this.checkBox1.UseVisualStyleBackColor = true;


public Form1()
{
    InitializeComponent();
    panel1.Visible =false;
}


private void comboBox1_DropDown(object sender, EventArgs e)
{
    panel1.Visible = true;
}

private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
    panel1.Visible = false;
}

这篇关于有没有办法实现的WinForms一个经过组合框的简单方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆