Windows窗体中已检查列表框控件的Items
属性是object类型,所以我天真的希望是我可以添加自定义用户控件作为项目。 (因为,通常,我的任务是编写后台任务的逻辑,我对UI编程不太熟悉,所以这可能是一个愚蠢的想法..)
更准确地说,我想在选中列表框的每一行显示两个标签和一个按钮。第一个标签应该显示用户可以选择的对象的名称(以便稍后将对所有选中的项执行特定操作)。对于任何选中的项目,该按钮应该允许用户选择一个文件,从中可以读取自定义设置以执行该操作,第二个标签应该显示用户使用按钮做出的选择(即文件名或其他内容)喜欢字符串“默认设置”)。
所以,在形式设计师,我创建自定义控制CustomControl1
与label1
,label2
,button1
,和方法来设置文本属性,设置自动调整大小的标签和按钮为false,手动定义其大小。然后在主窗口中创建了选中的列表框,我添加了自定义控件。我的主窗口的构造函数现在看起来如下:
InitializeComponent();
UserControl1 uc1 = new UserControl1();
uc1.setLabel1("label1_text");
uc1.setLabel2("label2_text");
uc1.setButtonText("button_text");
this.checkedListBox1.Items.Add(uc1);
uc1.Visible = true;
此编译没有任何错误并且也运行,但是选中的列表框显示一个空字段。我还试验了列表框的大小。如果我减小高度以便复选框恰好适合它,那么我确实看到相应行中的按钮片段,但没有标签。
是否可以在选中的列表框中使用自定义表单?如果是,我缺少什么?
答案 0 :(得分:2)
答案 1 :(得分:0)
private void Form1_Load(object sender,EventArgs e)
{
checkedListBox1.Items.Add("IIT");
checkedListBox1.Items.Add("CSE");
checkedListBox1.Items.Add("EEE");
checkedListBox1.Items.Add("ICT");
checkedListBox1.Items.Add("URP");
checkedListBox1.Items.Add("ENGLISH");
checkedListBox1.Items.Add("BANGLA");
checkedListBox1.Items.Add("MATH");
}
private void checkedListBox1_SelectedIndexChanged(object sender,EventArgs e)
{
//var item=checkedListBox1.SelectedItem;
label1.Text=checkedListBox1.SelectedItem.ToString();
}