亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

win7中C#的winForm編程使用savefiledialog不能彈出保存窗體的解決方法

 更新時(shí)間:2014年12月30日 09:12:29   投稿:shichen2014  
這篇文章主要介紹了win7中C#的winForm編程使用savefiledialog不能彈出保存窗體的解決方法,涉及針對(duì)線程的調(diào)用問題,是比較實(shí)用的技巧,需要的朋友可以參考下

本文實(shí)例分析了win7中C#的winForm編程使用savefiledialog不能彈出保存窗體的解決方法。分享給大家供大家參考。具體分析如下:

復(fù)制代碼 代碼如下:
public void ResMsg()
{
    while (isRecMsg)
    {
 //準(zhǔn)備一個(gè)數(shù)組 準(zhǔn)備接收 服務(wù)端發(fā)來的數(shù)據(jù)
 byte[] msgRec = new byte[1024 * 1024 * 2];
 //接收服務(wù)端發(fā)來的數(shù)據(jù),此方法也會(huì)阻斷當(dāng)前線程,并返回接收的數(shù)據(jù)的長度
 int recLength = sokClient.Receive(msgRec);
 switch(msgRec[0])
 {
     case 1://接收到 文件
  DialogResult reuslt = new SaveFileDialog().ShowDialog();   --- 此處有問題
  if (reuslt == System.Windows.Forms.DialogResult.OK)
  {
      using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create))
      {
   fs.Write(msgRec, 1, recLength - 1);
      }
      ShowMsg("文件保存完畢!" + saveFileDialog1.FileName);
  }
  break;
     case 2://接收到 字符串消息
  {
      //將數(shù)據(jù)轉(zhuǎn)成字符串(要轉(zhuǎn)換的數(shù)組,開始轉(zhuǎn)換的下標(biāo),要轉(zhuǎn)換的數(shù)據(jù)長度)
      string strRec = System.Text.Encoding.Default.GetString(msgRec, 1, recLength-1);
      //將接收到的數(shù)據(jù)顯示在文本框中
      ShowMsg(strRec);
      break;
  }
     case 3://接收到 閃屏命令
  {
      ShakeWindow();
      break;
  }
 }
    }
}

客戶端和服務(wù)器傳輸文件時(shí), 服務(wù)器端都顯示發(fā)送成功了,但是到客戶端保存時(shí),savefiledialog 保存對(duì)話框就是彈不來?!!

仔細(xì)的檢查代碼好幾遍,邏輯上沒有錯(cuò)誤。就是彈不出來,很無語了。就上網(wǎng)查了,查了很多資料,沒有什么頭緒。在查的過程中,我看見這樣的一句話“你前面都說了,你使用線程調(diào)用,那么這個(gè)線程是否為主線程?如果不是主線程,那么你應(yīng)該把它交給主線程去處理”,然后我就用一個(gè)例子模擬了一下,確實(shí)有關(guān)系。

模擬的例子:

復(fù)制代碼 代碼如下:
public partial class Form1 : Form
{
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(saveDialog);
            t.IsBackground = true;
            //t.ApartmentState = ApartmentState.STA;//缺少這句話,就會(huì)出錯(cuò)誤。

    //不過以上這句在Vs 2010中顯示是被微軟否決的,過時(shí)的,雖然還能用。但是為了更好的兼容版本,微軟推出以下方法:

    t.SetApartmentState(ApartmentState.STA);  //即是在線程啟動(dòng)時(shí)設(shè)置它的單元狀態(tài),這里設(shè)置它的狀態(tài)為單線程單元


            t.Start();
        }

        public void saveDialog()
        {
            SaveFileDialog result = new SaveFileDialog();
            result.ShowDialog();
        }
}

模擬的例子:缺少這句話【t.ApartmentState = ApartmentState.STA】,就會(huì)出錯(cuò)誤。但在vs2010中設(shè)置方式變?yōu)閠.SetApartmentState(ApartmentState.STA);//即是在線程啟動(dòng)時(shí)設(shè)置它的單元狀態(tài),這里設(shè)置它的狀態(tài)為單線程單元

同理  savefiledialog 保存對(duì)話框就是彈不來???是不是也是這個(gè)問題???經(jīng)過嘗試后,還真是這的問題。

就這么簡簡單單的一句話,就花費(fèi)了我兩個(gè)多小時(shí),但最后解決了,也很高興,并且在找的過程中收獲了不少。這就是有失必有得吧!

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#對(duì)Windows服務(wù)組的啟動(dòng)與停止操作

    C#對(duì)Windows服務(wù)組的啟動(dòng)與停止操作

    這篇文章主要為大家詳細(xì)介紹了C#對(duì)Windows服務(wù)組的啟動(dòng)與停止操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • C#控制臺(tái)進(jìn)行文件讀寫的方法

    C#控制臺(tái)進(jìn)行文件讀寫的方法

    這篇文章主要介紹了C#控制臺(tái)進(jìn)行文件讀寫的方法,涉及C#操作文件讀寫的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于C#版Nebula客戶端編譯的問題

    關(guān)于C#版Nebula客戶端編譯的問題

    這篇文章主要介紹了C#版Nebula客戶端編譯的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • C#接口實(shí)現(xiàn)方法實(shí)例分析

    C#接口實(shí)現(xiàn)方法實(shí)例分析

    這篇文章主要介紹了C#接口實(shí)現(xiàn)方法,以實(shí)例形式較為詳細(xì)的分析了C#接口的功能、定義及實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • C# Request.Form用法案例詳解

    C# Request.Form用法案例詳解

    這篇文章主要介紹了C# Request.Form用法案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C#的this關(guān)鍵字的2種用法

    C#的this關(guān)鍵字的2種用法

    這篇文章主要給大家分享的是C#的this關(guān)鍵字的2種用法,在使用C#的過程中,發(fā)現(xiàn)this關(guān)鍵是比較少用的,但是在下面這二個(gè)場合下是必須要使用的,不使用它是解決不了問題。下面我們就來看看文章的具體內(nèi)容吧
    2021-10-10
  • C#實(shí)現(xiàn)批量Word轉(zhuǎn)換Html的示例代碼

    C#實(shí)現(xiàn)批量Word轉(zhuǎn)換Html的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#批量Word轉(zhuǎn)換Html的功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • c# 自定義泛型鏈表類的詳解

    c# 自定義泛型鏈表類的詳解

    本篇文章是對(duì)c#中自定義泛型鏈表類進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#棧和隊(duì)列的簡介,算法與應(yīng)用簡單實(shí)例

    C#棧和隊(duì)列的簡介,算法與應(yīng)用簡單實(shí)例

    今天小編就為大家分享一篇關(guān)于C#棧和隊(duì)列的簡介,算法與應(yīng)用簡單實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Entity?Framework配置關(guān)系

    Entity?Framework配置關(guān)系

    這篇文章介紹了Entity?Framework配置關(guān)系的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論