1,我在程序中有一些数据要保存(不保存在数据库或本地文件),格式就像数据表一样一行有很多列。
比如 张三 26岁 男 汉 .......
请问我用什么方式把这些数据保存在内存供后面的程序调用了?
arraylist只有一列。数组大小又是固定的。
2,我有个listbox1,里面有很多元素,
比如listbox1.add("张三");
listbox1.add("李四")
我在listbox1的点击事件里
添加了 Form2 form2=new Form2();
form2是个显示个人信息的窗口。
这样一来每点击一个元素就会创建一个form2.
我的意思是
1.点击张三创建了个form2,再次点击张三的话应该判断是否已经有张三这个Form2; 怎么判断?
2.程序收到别的消息要求更改张三那个FORM2上的控件信息。 用什么代码才能访问张三创建的form2;
我觉得是不是不应该用Form2 form2=new Form2()来创建 form2有多个实例,真不知道怎么区分。
大虾们解决我这两个问题。我分都送了。
比如 张三 26岁 男 汉 .......
请问我用什么方式把这些数据保存在内存供后面的程序调用了?
arraylist只有一列。数组大小又是固定的。
2,我有个listbox1,里面有很多元素,
比如listbox1.add("张三");
listbox1.add("李四")
我在listbox1的点击事件里
添加了 Form2 form2=new Form2();
form2是个显示个人信息的窗口。
这样一来每点击一个元素就会创建一个form2.
我的意思是
1.点击张三创建了个form2,再次点击张三的话应该判断是否已经有张三这个Form2; 怎么判断?
2.程序收到别的消息要求更改张三那个FORM2上的控件信息。 用什么代码才能访问张三创建的form2;
我觉得是不是不应该用Form2 form2=new Form2()来创建 form2有多个实例,真不知道怎么区分。
大虾们解决我这两个问题。我分都送了。
解决方案 »
- swith怎么用枚举来代替
- C#4.0入门 第二章 任务并行库—第一页 只使用双核
- 拯救段国富行动火热进行中
- 方法里怎样传FileUpload对象
- vc6.0写的dll中的函数,如何在c#中调用,详细如下。谢谢
- WebService里的调用Socket的问题 请大家帮忙看看 谢谢
- 菜农提问
- 请问如果把数据写入Web窗体?
- 为什么用iframe去加载水晶报表 点击过水晶报表页面之后再点击其它页面 iframe的main主页面会另起一页?
- 如何在web页面中实现像windows窗口式的对文件直接操作,往服务器上上传、下载、删除?
- 怎么用c#实现SQL server 2005数据库文件的备份和还原
- windows 密码与sql server 2005的密码问题???
你可以在xml中设置你的这些结点2.你可以把窗口名以及form保存在哈希表中,然后下次先将窗口名与哈希表中窗口名比较,如果有的话就将相应的form取出来
if(form2 == null )
Form2 form2=new Form2();
else
form2.show();
end if;
//先给出第一个问题的,第二个稍后.
DataTable dtInfo = new DataTable();
DataColumn dcName = new DataColumn("姓名");
DataColumn dcAge = new DataColumn("年龄");
DataColumn dcSex = new DataColumn("性别");
DataColumn dcNation = new DataColumn("民族");
//可以再接着加
dtInfo.Columns.Add(dcName);
dtInfo.Columns.Add(dcAge);
dtInfo.Columns.Add(dcSex);
dtInfo.Columns.Add(dcNation);
//可以再接着加
dtInfo.Rows.Add("张三", "26岁", "男", "汉");
//dataGridView1.DataSource = dtInfo.DefaultView;
//用这个可以看到结果.眼见到才算真的^-^
2 用ArrayList等集合,每行内将各元素用分号(或其它符号隔开)
3 用ArrayList等集合,元素为类文件,类的属性为存放的信息的列内容
4 从3来,可用哈希表,Key为唯一信息(如员工编号,或姓名(如果可以的话)),Value亦为类文件(同3)
//第二个问题的
Form from2;
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (from2 == null)
{
from2 = new Form();
from2.Show();
from2.Text = listBox1.SelectedItem.ToString(); }
else
{
from2.Show();
from2.Text = listBox1.SelectedItem.ToString(); }
}
if (from2 == null)
{
from2 = new Form();
from2.Show();
from2.Text = listBox1.SelectedItem.ToString();
//如果from2中有一用到存放姓名的TextBox控件txtName,把它设为公开 public
//from2.txtName.Text = "张三"}
else
{
from2.Show();
from2.Text = listBox1.SelectedItem.ToString();}
if(form2==null)
{
form2=new Form2();
form2.show();
}
else
form2.show();
1:DataTable
2:List<对象> 泛型第二个问题:
if(Application.OpenForms["form2"]!=null)
{
Form2 form2 = new Form2();
form2.Show();
}
可以建立一个结构体,存入arraylist中调用
如果用到查询 则放入哈希表中,key是名称,value是结构体
ht.Add("张三", "26岁,男,汉 ");
MessageBox.Show((string )ht["张三"] );
2 Singleton
还是有些问题请大家看看
1.上面说了几个方法
这个方法可能更适合我一些。
DataTable dtInfo = new DataTable();
DataColumn dcName = new DataColumn("姓名");
DataColumn dcAge = new DataColumn("年龄");
DataColumn dcSex = new DataColumn("性别");
DataColumn dcNation = new DataColumn("民族");
//可以再接着加
dtInfo.Columns.Add(dcName);
dtInfo.Columns.Add(dcAge);
dtInfo.Columns.Add(dcSex);
dtInfo.Columns.Add(dcNation);
//可以再接着加
dtInfo.Rows.Add("张三", "26岁", "男", "汉");
添加了是否可以用SQL语句查询,或者用别的方式查询。因为可能要更改其中某一列的值.2.关于第二个问题
大家好像没明白我的意思比如listbox1.add("张三");
listbox1.add("李四")
我在listbox1的点击事件里
添加了 Form2 form2=new Form2(); 当我点击张三创建了张三信息的Form2并显示出来。
当我点击了李四又创建了李四的form2并显示出来。
如果用这个方法
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (from2 == null)
{
from2 = new Form();
from2.Show();
from2.Text = listBox1.SelectedItem.ToString(); }
else
{
from2.Show();
from2.Text = listBox1.SelectedItem.ToString(); }
}
当我关闭了张三的form2(李四的form2还没关闭).我再点击张三的话。张三信息的FORM2还会出来吗?
这个问题我开始用的是句柄。每创建一个form2,就把窗口句柄与姓名联系起来保存在数组中
关闭窗体的时候再从数组中删除。。我感觉比较麻烦。
最重要的问题是。当张三和李四的FORM2都开着。
程序收到别的消息要求更改张三FORM2上的控件TEXTBOX的内容,请问应该怎么做?
我这时如果用form2.textBox1.text=" ";
这句代码更改张三的form2还是更改的李四的form2上的textbox的内容?
我想是不是在创建窗体的时候用 Form2 变量=new Form2(),这样能行的话所有的问题都可以解决了。
这样点击listbox的时候就可以先看看这个窗体是不是NULL。收到消息后就直接可以用 变量.textbox.text=""
就是不知道应该怎么使这句话 Form2 变量=new Form2()能用?
或者还有什么好的思路麻烦大家告诉我,最好给我代码。好吗?
再次谢谢大家
那么"张三"对应的 数组引用张三的INDEX i[张三的INDEX]=1; 当张三的窗体关闭时,再将 i[张三的INDEX]=0;
这样, 在CLICK事件中先判断对应INDEX数组中的值 就能确定此人的信息是否已经被显示
干嘛不用DataView啊
2.关于第二个问题
比如listbox1.add("张三");
listbox1.add("李四")
我在listbox1的点击事件里
添加了 Form2 form2=new Form2(); 当我点击张三创建了张三信息的Form2并显示出来。
当我点击了李四又创建了李四的form2并显示出来。
如果用这个方法
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (from2 == null)
{
from2 = new Form();
from2.Show();
from2.Text = listBox1.SelectedItem.ToString(); }
else
{
from2.Show();
from2.Text = listBox1.SelectedItem.ToString(); }
}
当我关闭了张三的form2(李四的form2还没关闭).我再点击张三的话。张三信息的FORM2还会出来吗?
这个问题我开始用的是句柄。每创建一个form2,就把窗口句柄与姓名联系起来保存在数组中
关闭窗体的时候再从数组中删除。。我感觉比较麻烦。
最重要的问题是。当张三和李四的FORM2都开着。
程序收到别的消息要求更改张三FORM2上的控件TEXTBOX的内容,请问应该怎么做?
我这时如果用form2.textBox1.text=" ";
这句代码更改张三的form2还是更改的李四的form2上的textbox的内容?
我想是不是在创建窗体的时候用 Form2 变量=new Form2(),这样能行的话所有的问题都可以解决了。
这样点击listbox的时候就可以先看看这个窗体是不是NULL。收到消息后就直接可以用 变量.textbox.text=""
就是不知道应该怎么使这句话 Form2 变量=new Form2()能用?
或者还有什么好的思路麻烦大家告诉我,最好给我代码。好吗?
再次谢谢大家
bool hasForm=false;
foreach (Form fm in Application.OpenForms)
{
if (fm.Text == listBox1.SelectedItem.ToString())
{
hasForm = true;
fm.BackColor = Color.Blue; //我实验是改背景颜色,fm找到了,你可以随便做些啥。。
break;
} else
{
hasForm = false;
}
}
if (!hasForm)
{
Form2 form2 = new Form2();
form2.Text = listBox1.SelectedItem.ToString();
form2.Show();
}
刚才忘了说明了。
XmlDocument xd=new XmlDocument();
xd.Load("c:\\library.xml");XmlElement root=xd.CreateElement("root");
xd.Document=root;XmlElement name=xd.CreateElement("name");
XmlAttribute age=xd.Create("age");name.Attributes.Add(age);
root.AppentChield(name);...
2.你可以先声明一个Form form2,
点击时在事件的代码中实例它form2 = new Form("张三");
再次点击是判断是否为空
if(form2 == null)
{
form2 = new Form();
}
else
{
....这里可以修改已经“张三”的信息或者别的操作
}
asp.net 高级编辑看:列表与集合