form1中有combox1控件,其加载内容为
combox1.Items.Add("C#");
combox1.Items.Add("C++");
form2中有combox2控件,需要加载的内容和combox1的一样
我的做法是和form1中一样,写下面2句进行加载
combox2.Items.Add("C#");
combox2.Items.Add("C++");
如果有很多窗体都用到该类控件的相同内容,这样写太麻烦了
求该问题的简单方法
combox1.Items.Add("C#");
combox1.Items.Add("C++");
form2中有combox2控件,需要加载的内容和combox1的一样
我的做法是和form1中一样,写下面2句进行加载
combox2.Items.Add("C#");
combox2.Items.Add("C++");
如果有很多窗体都用到该类控件的相同内容,这样写太麻烦了
求该问题的简单方法
我想可以写个方法
public static void AddElement(ComboBox c)
{
c.Items.Add("C++");
c.Items.Add("C#");
}
然后每次都去调用这个方法应该可行
/// 复制一个ComboBox的所有下拉列表给另一个。
/// </summary>
/// <param name="sourceComboBox"></param>
/// <param name="targetComboBox"></param>
public void CopyComboBoxToAnother(ComboBox sourceComboBox, ComboBox targetComboBox)
{
if (sourceComboBox == null || targetComboBox == null)
return; targetComboBox.Items.Clear(); foreach (object item in sourceComboBox.Items)
{
targetComboBox.Items.Add(item);
}
}
这个是针对str字符串变化(str="C#,C++,js";) 这样就不用全部改了。
{
string[] str__str = { "C#","C++"};
for (int i = 0; i < str__str.Count(); i++)
{ c.Items.Add(str__str[i].ToString());}
//c.Items.Add("C++");
//c.Items.Add("C#");
}
如果值不一样,可以这样写,只要给str__str赋值不同,显示的就不同
public void CopyComboxToAnother(ComboBox SourceCombox,ComboBox TargetCombox)
{
if (SourceCombox == null || TargetCombox == null)
return;
TargetCombox.Items.Clear();
foreach (object item in SourceCombox.Items)
{
TargetCombox.Items.Add(item);
}
SourceCombox在form2窗体中
TargetCombox在form3中
form3中
private void form3_Load(object sender, EventArgs e)
{
form1 f1 = new form1();
form2 f2= new form2();
f1.CopyComboxToAnother(f2.cbMarry,cbMarried);
}
错误在哪里?
public void CopyComboxToAnother(ComboBox SourceCombox,ComboBox TargetCombox)
{
if (SourceCombox == null || TargetCombox == null)
return;
TargetCombox.Items.Clear();
foreach (object item in SourceCombox.Items)
{
TargetCombox.Items.Add(item);
}
SourceCombox在form2窗体中
TargetCombox在form3中
form3中
private void form3_Load(object sender, EventArgs e)
{
form1 f1 = new form1();
form2 f2= new form2();
f1.CopyComboxToAnother(f2.cbMarry,cbMarried);
}
错误在哪里?
public static void CodeBinding(this System.Web.UI.WebControls.DropDownList DropDownListControl, string CodeType)
{
DropDownListControl.DataSource = ((List<SysCodeInfo>)HttpContext.Current.Cache["code_" + CodeType]);// codeService.GetCodeListByFlag(CodeType);
DropDownListControl.DataTextField = "name";
DropDownListControl.DataValueField = "Code";
DropDownListControl.DataBind();
DropDownListControl.Items.Insert(0, new System.Web.UI.WebControls.ListItem("请选择", ""));
}
双向绑定:
<TextBox Name="textBox1" Text="{Binding ElementName=TextBox2, Path=Text}"/>textBox1的Text与TextBox2的Text同步绑定改任何一方的值都会变另一方的值.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("C#");
comboBox1.Items.Add("C++"); } private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
ComboBox cb = new ComboBox();
Object[] objs = new Object[comboBox1.Items.Count];
comboBox1.Items.CopyTo(objs, 0);
cb.Items.AddRange(objs);
Label lb = new Label();
lb.Text = "Form1加给我的";
cb.Left = 100;
frm.Controls.Add(lb);
frm.Controls.Add(cb);
frm.Show();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{
FormCollection frms = Application.OpenForms;
foreach (Form frm in frms)
{
if (frm.Name == "Form1")
{
ComboBox cb=null;
cb = frm.Controls.Find("comboBox1", true)[0] as ComboBox;
if (cb != null && cb.Items.Count>0)
{
Object[] objs = new Object[cb.Items.Count];
cb.Items.CopyTo(objs, 0);
this.comboBox1.Items.AddRange(objs);
}
break;
}
}
}
}
}
public static string[] com1 = new string[] { "C#","C++" }; comboBox1.Items.AddRange(com1);
FORM2中
comboBox1.Items.AddRange(Form1.com1);