已有56人关注
folderBrowserDialog显示不了目录树是什么原因呀?请老师指点一下,谢谢。
发表在C#图书答疑 2010-08-27
是否精华
版块置顶:
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;


using System.IO;

namespace IT部门管理系统
{
    public partial class frm_dataBak : Form
    {
        public frm_dataBak()
        {
            InitializeComponent();
        }

        cls_dbOpSql dbOp = new cls_dbOpSql();  //实例化数据库操作类

        private void btnSel_Click(object sender, EventArgs e)  [font color=#FF0000]//就是此处代码不知为什么,请老师指点一下,谢谢。
[/font]        {            
            folderBrowserDialog1.ShowDialog();
            txtDSPath.Text = folderBrowserDialog1.SelectedPath.ToString().Trim() + "\\";
        }

        private void btnDStore_Click(object sender, EventArgs e)
        {
            try
            {
                if (File.Exists(txtDSPath.Text.Trim() + ".bak"))
                {
                    MessageBox.Show("该文件已经存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtDSPath.Text = "";
                    txtDSPath.Focus();
                }
                else
                {
                    dbOp.getcom("backup database itSys to disk='" + txtDSPath.Text.Trim() + " "+label2.Text.ToString()+".bak'"); 
                    MessageBox.Show("数据备份成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frm_dataBak_Load(object sender, EventArgs e)
        {
            cls_autoNum num = new cls_autoNum();
            label2.Text = num.tb_EmpInfoID();
        }
        


    }
}
分享到:
精彩评论 4
wufayou
学分:0 LV1
TA的每日心情
第五天
2023-03-18 21:24:17
2010-08-29
沙发
                    //Thread t = new Thread(new ThreadStart(delegate { Application.Run(new frm_main()); }));  //用线程关闭登录窗体   要先using System.Threading;  //线程
                    //t.Start();
                    //this.Dispose(true);

请问如果用线程,要怎样才能显示目录呀?
东方_mrkj
学分:0 LV1
2010-08-30
板凳
读者你好:
    由于创建folderBrowserDialog1控件的线程(即应用程序的主线程)不是你定义的线程(比如,Thread t ),所以Windows窗体不允许跨线程操作控件。所以要想其它胡办法,比如可以试一试下面的办法:、
   1、创建一个打开folderBrowserDialog1控件的方法,比如:
      OpenFlderBrowserDialog(object obj)
      {
         。。。。。
      }
   2、创建一个新的线程,例如:
      Thread t = new Thread(OpenFlderBrowserDialog);
      t.IsBackground = true;
      t.Start(this.folderBrowserDialog1);
   3、为了给更多的读者服务,以后提问时,请标清书名及出现问题的章节。
      
wufayou
学分:0 LV1
TA的每日心情
第五天
2023-03-18 21:24:17
2010-08-30
地板
   //点击后提示  在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。

 public void OpenFlderBrowserDialog(object obj)
    {
         folderBrowserDialog1.ShowDialog();         
         
    }


        private void btnSel_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(OpenFlderBrowserDialog);
            t.IsBackground = true;
            t.Start(this.folderBrowserDialog1);            
           
            txtDSPath.Text = folderBrowserDialog1.SelectedPath.ToString().Trim() + "\\";
        }
东方_mrkj
学分:0 LV1
2010-08-30
4L
读者你好:
    论坛只负责回复图书上的问题,这里建议你在Program类的main方法中添加STAThreadAttribute特性标签,谢谢你对明日科技的支持。
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照