1:桌面应用程序:怎么关联文件?<序列化一个文件.自己的格式,然后自己的程序去关联,就是双击它--就能打开> 先来个简单的 .txt 个是讲解一下!谢谢!
2:桌面应用程序:怎么遍历文件夹(遍历文件夹里边的文件(但是文件夹里边包含文件夹...还不晓得包含多少层!))
3:桌面应用程序:LIstView不是很好用能不能自己重新定义一个?自定义控件?
谁写过或是源代码 可以的话拿来看看!
2:桌面应用程序:怎么遍历文件夹(遍历文件夹里边的文件(但是文件夹里边包含文件夹...还不晓得包含多少层!))
3:桌面应用程序:LIstView不是很好用能不能自己重新定义一个?自定义控件?
谁写过或是源代码 可以的话拿来看看!
解决方案 »
- 如何用代码实现将任务栏保持在其他窗口的前端,在线等
- 请问string cmdText = "Update UserInfo set pass='{0}' where userId='{1}'";是什么意思?
- 求时间段,现在我有两个时间,比如2012-8-11,2011-8-13,两个时间,怎样得知他们的距离还与多长!
- 从索引 0 处开始,初始化字符串的格式不符合规范。
- asp.net 2.0 到底应该如何发布呀!
- 请教一个问题,请问我在2003 下写的程序,转到了2005下,一切OK,可以运行.但我现在发现了一个问题,即,在源程序中看到的界面都是2005下的界面
- C#数据库达人入(菜鸟求救)
- 紧急求助:关于调用一个c++函数,请高手解答!!
- C# Socket监听,有客户端连接的时候能知道客户端的mac吗?
- 请问如何在XPathNavigator中得到某个节点的position()值?
- c# 数值字符串排序和删除重复值问题,高手指点
- winform发送http请求
关联文件就是在注册表里注册一个文件类型,然后指定打开该类文件的应用程序即可,然后在程序中,Main入口函数里的参数(string[] args)就是双击文件后的文件名,
具体代码如下(以下是注册一个*.BGEMAP文件,双击*.BGEMAP文件会启动该程序):
// 注册文件类型
private void RegistFileType()
{
try
{
string applicationPath = Application.ExecutablePath; RegistryKey rootKey = Registry.ClassesRoot;
RegistryKey key_BGEMAP = rootKey.CreateSubKey(".BGEMAP");
key_BGEMAP.SetValue("", "BGEMAP_File_Hype", RegistryValueKind.String); RegistryKey key_BGEMAP_File_Hype = rootKey.CreateSubKey("BGEMAP_File_Hype");
RegistryKey key_Shell = key_BGEMAP_File_Hype.CreateSubKey("Shell");
RegistryKey key_Shell_Open = key_Shell.CreateSubKey("Open");
RegistryKey key_Shell_Open_Command = key_Shell_Open.CreateSubKey("Command");
key_Shell_Open_Command.SetValue("", applicationPath + " \"%1\"", RegistryValueKind.String);
key_Shell_Open_Command.Close();
key_Shell_Open.Close();
RegistryKey key_Shell_Edit = key_Shell.CreateSubKey("Edit");
RegistryKey key_Shell_Edit_Command = key_Shell_Edit.CreateSubKey("Command");
key_Shell_Edit_Command.SetValue("", applicationPath + " \"%1\"", RegistryValueKind.String);
key_Shell_Edit_Command.Close();
key_Shell_Edit.Close();
key_Shell.Close(); RegistryKey key_DefaultIcon = key_BGEMAP_File_Hype.CreateSubKey("DefaultIcon");
key_DefaultIcon.SetValue("", applicationPath + ",1", RegistryValueKind.String);
key_DefaultIcon.Close(); key_BGEMAP_File_Hype.Close(); rootKey.Close();
}
catch
{
MessageBox.Show("注册文件类型失败。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
启动该程序后,打开该文件:
static void Main(string[] args)
{
string fileName=args[0];
// 对fileName进行操作,
}
2.递归就行了:
private void LoadSubDrives(TreeNode tn)
{
string[] directorys = Directory.GetDirectories(tn.Tag.ToString()); tn.Nodes.Clear();
foreach (string directory in directorys)
{
TreeNode tn2 = new TreeNode();
tn2.Text = Path.GetFileName(directory);
tn2.ImageIndex = 1;
tn2.SelectedImageIndex = 1;
tn2.Tag = directory; tn.Nodes.Add(tn2);
LoadSubDrives(tn2);
}
}3.A.定义全局变量,相关说明见使用《数据集和数据适配器》。 private DataSet dataSet = new DataSet(); // 声明并初始化DataSet private SqlDataAdapter dataAdapter; // 声明DataAdapter B.填充DataGridView窗体 string teacherSql = "SELECT TeacherID,LoginId,LoginPwd,TeacherName,Sex,BirthDay FROM Teacher";//查询语句按题目要求自行确定// 初始化DataAdapter,使用合适的查询字符串 dataAdapter = new SqlDataAdapter(teacherSql, DBHelper.connection); // 填充DataSet,填充进去的表名字按实际题目自行定义 dataAdapter.Fill(dataSet, "Teacher");// 绑定DataGridView的数据源 dgvTeacher.DataSource = dataSet.Tables["Teacher"];C.修改后保存修改DataGridView窗体中内容到数据库中SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter);//自动生成对应的SQL语句dataAdapter.Update(dataSet, "Teacher");//提交到数据库中,如果dataSet中有多个表,那么"Teacher"就是指定提交那个表的数据给数据库d.如果需要按其他条件重新查询一些信息填到DataGridView窗体中:// 先把到DataGridView窗体中的内容全部清除掉dataSet.Tables["Student"].Clear();// 重新指定DataAdapter 对象的查询语句,此前要修改SQL查询语句dataAdapter.SelectCommand.CommandText = sql;// 重新填充数据集dataAdapter.Fill(dataSet, "Student");