青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

個人整理-C#編程實用小技巧- -

個人整理-C#編程實用小技巧- -

                                      

01、在C#應用程序中如何在運行時將窗口最大化?

02、利用C#編寫Web下的郵件發送程序

03、C#DOS控制臺程序連接SQLServer數據庫的方法

04、C#中ListView的簡單使用說明

05、C#中加載圖片與讀取圖片上的像素點方法

06、窗體間傳遞復雜數據

07、如何在.net的應用程序運行其它的EXE文件?

08、如何檢測當前操作系統?

09、如何獲取正在運行程序的路徑?

10、如何查看電腦中已經安裝的所有程序集?

11、如何用System.Windows.Forms.Application.CompanyName設置公司名稱?

12、如果用戶的電腦沒有安裝.NET運行框架,是否可以運行.NET的程序?

13、如何獲取本地的IP地址?

14、如何確保在C#中只有一個程序(實例)運行?

15、如何把所有的系統中正在運行的所有進程顯示出來呢?

16、如何列出所有正在運行的應用程序呢?

01、在C#應用程序中如何在運行時將窗口最大化?(TOP)
  可以使用FormWindowState 枚舉,代碼如下所示:
  private void Form1_Load(object sender, System.EventArgs e)
    {
         //實現C#打開后的窗口最大化;
         this.WindowState = FormWindowState.Maximized;
    }

02、利用C#編寫Web下的郵件發送程序(TOP)
  創建一個C#項目中的APS.NET Web應用程序,命名為EmailPage;
  按下圖所示添加各控件,并對各控件進行命名。注意:要將HTML控件FileField設置為服務器控件運行。


  查看WebForm1.aspx的HTML源代碼,修改標簽,添加屬性設置encType="multipart/form-data";
  在C#代碼中添加對命名空間System.Web.Mail的引用(需要使用該名稱空間下的MailMessage類和SmptMail類),MailMessage類對象用來設定要發送郵件的相關信息,如收件人,發件人,主題,內容,優先級,格式以及附件;使用SmptMail類的Send方法將MailMessage對象發送出去。
  注:要在C:\Inetpub\wwwroot目錄下創建一個temp文件夾,用于將酵文件上傳到Web臨時目錄下,然后將服務器上的文件路徑賦給MailMessage對象的Attachments屬性即可。
  “發送”按鈕的事件如下:
  private void btnSend_Click(object sender, System.EventArgs e)
  {
   //創建一個MailMessage對象
   MailMessage aMail = new MailMessage();
   //收信人地址
   aMail.To = txtTo.Text ;
   //發信人地址
   aMail.From = txtFrom.Text ;
   //主題
   aMail.Subject = txtSubject.Text;
   //正文
   aMail.Body = txtBody.Text ;
   //優先級
   aMail.Priority = (MailPriority)ddPriority.SelectedIndex ;
   //正文格式
   aMail.BodyFormat = (MailFormat)ddBodyFormat.SelectedIndex ;
   ddPriority.SelectedIndex = 1;
   ddBodyFormat.SelectedIndex = 0;
   
   if (File1.PostedFile.FileName  != "" )
   {
    //上傳文件的文件名(含完整路徑)
    string fileName = File1.PostedFile.FileName;
    fileName = fileName.Substring (fileName.LastIndexOf (@"\"));
    //使用SaveAs方法,將文件保存在項目路徑\temp目錄下,
    //需要在項目路徑下創建temp目錄
    fileName = Server.MapPath(@"\temp\" + fileName);
    //要在C:\Inetpub\wwwroot文件夾下創建temp文件夾用于存放臨時發送的文件
    File1.PostedFile.SaveAs(fileName);
    //添加附件
    aMail.Attachments.Add(new MailAttachment(fileName));
   }
   
   string result = "";
   try
   {
    //發送郵件
    SmtpMail.Send(aMail);
    result = "Email 發送成功!";
   }
   catch(Exception ex)
   {
    result = "Email 發送失敗。" + ex.Message ;
   }
   Response.Write (" ");
  }

03、C#DOS控制臺程序連接SQLServer數據庫的方法(TOP)

①、建立一個C#的DOS控制臺應用程序;
②、添加命名空間:using System.Data.SqlClient;;
③、連接到數據源,通過創建一個使用連接字符串的連接對象來完成:
SqlConnection connection = new SqlConnection(@"Data Source=MySER;Integrated Security=SSPI;Initial Catalog=pubs");
  其中的MySER是安裝了SQLServer的服務器名;pubs是SQLServer上的數據庫名。
④、打開連接對象,建立到數據庫的連接:
connection.Open();
⑤、創建對象命令,并給它提供SQL命令(從TN_RP表中選取 Ccname, MI_SQL_X,MI_SQL_Y 字段):
SqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT Ccname, MI_SQL_X,MI_SQL_Y from TN_RP";
⑥、使用DataReader以只讀方式獲取數據結果:
SqlDataReader reader = command.ExecuteReader();
⑦、從DataReader中獲取數據:
while(reader.Read())
{
 Console.WriteLine("{0}{1}\t{2}",reader["Ccname"],reader["MI_SQL_X"],reader["MI_SQL_Y"]);
}
⑧、關閉DataReader和SqlConnection。

04、C#中ListView的簡單使用說明(TOP)
  在C#工程中添加一個ListView控件,控件名稱為listView1。
  分別設置其屬性:View為Detail,然后為其Column增加項。
  添加List項的代碼部分如下:
while(reader.Read())
{
    string[] subItem={i.ToString(),reader["Ccname"].ToString(),reader["MI_SQL_X"].ToString(),reader["MI_SQL_Y"].ToString()};
    //定義每個項的子串;這里是每個列表項有四個條目;
    ListViewItem item = new ListViewItem(subItem);
    listView1.Items.Insert(i,item);
    i++;
}
  讀取的方法是:
private void button1_Click(object sender, System.EventArgs e)
{
   MessageBox.Show(listView1.SelectedItems[0].SubItems[1].Text.ToString());
   //SelectItems[0]是所選項的第一個(因為有MutiSelect屬性),SubItems[1]是所選項的第二個列的值
}

05、C#中加載圖片與讀取圖片上的像素點方法(TOP)
(1)在.NET中創建一個窗體,加入pictureBox控件。設置其Image為空,SizeMode屬性設為AutoSize;
(2)加入一個button控件,用于打開圖片文件;
(3)加入三個textBox控件,用于表示RGB三個顏色的值。
(4)定義一個私有變量pick為布爾值,來表示是否拾取圖片上的顏色。并在Form1_Load中將其設置為false;再加入一個public Bitmap myBitmap用來進行函間的訪問。
(5)為button控件增加click事件,該事件主要是完成讀入文件和對pictureBox控件的初始化:
   OpenFileDialog of = new OpenFileDialog();
   of.Filter = "JPG圖像(*.jpg)|*.jpg|BMP圖像(*.bmp)|*.bmp|所有文件(*.*)|*.*";
   of.FilterIndex = 0;
   of.ShowDialog();
   String filename = of.FileName.ToString();

   //在此處加載一個新的圖片。
   this.myBitmap = new Bitmap(filename);
   // Stretches the image to fit the pictureBox.
   pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
   Bitmap myImage = this.myBitmap;//new Bitmap(fileToDisplay);
   //pictureBox1.ClientSize = new Size(xSize, ySize);
   pictureBox1.Image = (Image) myImage ;
   //設置當前窗體與圖片大小相當
   this.ClientSize = new Size(pictureBox1.Width+20,pictureBox1.Height+60);
   pick = true;//設為TRUE可以開始讀取像素點。
(6)為pictureBox控件增加mousemove事件:
   if (pick)
   {
    Color pixelColor = this.myBitmap.GetPixel(e.X,e.Y);
    //pixelColor = Color.FromArgb(255,0,0);//可以以此方法對COLOR變量進行RGB值設置。
    textBox1.Text = pixelColor.R.ToString();
    textBox2.Text = pixelColor.G.ToString();
    textBox3.Text = pixelColor.B.ToString();
   }

06、窗體間傳遞復雜數據(TOP)
源代碼下載請點這里
  在設計窗體程序時往往需要相互調用的窗體間傳遞復雜的數據,有時候甚至需要子窗體修改父窗體的內容。前一陣在博客園中看到很多人討論這個問題,在海天一鷗《窗體間傳值和窗體間互操作》的評論中,我看到有這么幾種做法:1)公開一個靜態變量;2)在子窗體中創建一個公有字段;3)在父窗體中使用委托與事件;4)將子窗體作為父窗體成員。
  這些辦法我感覺都不是特別好,會導致父窗體與子窗體耦合過于緊密,對任何一個窗體的修改需要重新編譯另外一個窗體。根據“依賴倒置”的原則,通過引入一個結果對象,就可以避免這種緊耦合,同時也可以傳遞任意復雜的數據。如果需要在子窗體中改變父窗體狀態,也可以在這個結果對象中定義委托與事件來達到目的。我在這里給出我的解決方案。
  首先定義一個結果對象,用來存放子窗體返回的結果。同時定義一些事件,可以讓子窗體修改父窗體的狀態。代碼如下:
usingSystem;
namespaceWinParam
{
  publicdelegatevoidTextChangedHandler(strings);
  publicclasscResult
  {
    publicstringResult1="";
    publicstringResult2="";
    publiceventTextChangedHandlerTextChanged;
    publicvoidChangeText(strings)
    {
      if(TextChanged!=null)
        TextChanged(s);
    }
  }
}
  添加一子窗體構造函數,允許接收一結果對象:
privatecResultr;
publicfrmChild(cResultr):this()
{
  this.r=r;
}
  在父窗體中創建子窗體,并訂閱cResult事件:
privatevoidbtnCallChild_Click(objectsender,System.EventArgse)
{
  cResultr=newcResult();
  r.TextChanged+=newTextChangedHandler(this.EventResultChanged);
  frmChildfc=newfrmChild(r);
  fc.ShowDialog();
  txtCallResult.Text="TheResultis: "+r.Result1+" "+r.Result2;
}
privatevoidEventResultChanged(strings)
{
  txtEventResult.Text=s;
}
  這樣確保父窗體知道子窗體,而子窗體不知道父窗體。父窗體改變后不需要重新編譯子窗體。同時兩個窗體都依賴于結果對象,結果對象的穩定性也決定了父窗體與子窗體關系的穩定性。下面是程序運行結果:
  注:提供的代碼僅僅是功能演示,如果實際使用需要添加一些額外輔助代碼(對象釋放、取消事件訂閱等)。

07、如何在.net的應用程序運行其它的EXE文件?
解答:主要應用System.Diagnostics名字空間中的Process類
主要代碼:
    Process proc = new Process();
    proc.StartInfo.FileName = @"D:\Program Files\Foxmail\Foxmail.exe"; //可以用絕對路徑
    proc.StartInfo.Arguments = "";
    proc.Start();

08、如何檢測當前操作系統?
解答:應用System名字空間中的Environment類
主要代碼:
    string versionText = Environment.OSVersion.Version.ToString();

09、如何獲取正在運行程序的路徑?
解答:調用Application類中的ExecutablePath靜態成員獲取路徑
主要代碼:
    textBox1.Text = Application.ExecutablePath;

10、如何查看電腦中已經安裝的所有程序集?
解答:.Net Framework把所有的程序集安裝在系統安裝盤\winnt\Assembly(隱含)目錄下,查看屬性可以看到該程序集的所有詳細資料。

11、如何用System.Windows.Forms.Application.CompanyName設置公司名稱?
解答:在Assembly中設置,VS.Net的開發環境中是在 AssemblyInfo.cs(vb)的文件中設置的,打看文件可以
公司信息和版本等信息
主要代碼:
    [assembly: AssemblyCompany("天極網蠶蛹-版權所有")]

12、如果用戶的電腦沒有安裝.NET運行框架,是否可以運行.NET的程序?
解答:不可以,必需安裝.NET Framework
可在下面地址下載
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/netdevframework.asp

13、如何獲取本地的IP地址?
解答:在名字空間System.Net中定義了一個類Dns,其中有一個方法GetHostByName(),用來返回IPHostEntry 對象,此對象有一個屬性是AddressList,此屬性是一個IPAddress類型的數組,包含了計算機此時的所有的IP地址信息,包含了撥號上網得到的臨時分配的IP地址和局域網固定的IP地址
主要代碼:
    string s="";
    System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
    for (int i = 0; i < addressList.Length; i ++)
    {
        s += addressList[i].ToString();
    }

14、如何確保在C#中只有一個程序(實例)運行?
解答:主要應用System.Diagnostics名字空間中的Process類來實現,思路,我們在運行程序前,查找進程中是否有同名的進程,同時運行位置也相同程,如是沒有運行該程序,如果有,就將同名的同位置的程序窗口置前.
主要代碼:
    public static Process RunningInstance()
    {
        Process current = Process.GetCurrentProcess();
        Process[] processes = Process.GetProcessesByName (current.ProcessName);
        //查找相同名稱的進程
        foreach (Process process in processes)
        {
            //忽略當前進程
            if (process.Id != current.Id)
            {
                //確認相同進程的程序運行位置是否一樣.
                if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName)
                {
                    //Return the other process instance.
                    return process;
                }
            }
        }
        //No other instance was found, return null.
        return null;
    } 
 
15、如何把所有的系統中正在運行的所有進程顯示出來呢?
解答:用System.Diagnostics名字空間中的Process.GetProcess()靜態成員
主要代碼:
    Using System.Diagnostics;
    ...
    foreach ( Process p in Process.GetProcesses() )
        Console.WriteLine( p ); // string s = p.ToString();

16、如何列出所有正在運行的應用程序呢?
解答:可有用EnumWindows 函數將枚舉計算機上的所有現有窗口,但我們用System.Diagnostics名字空間的靜態函數Process.GetProcesses()可以避免EnumWindows的互操作性問題。
主要代碼:
    Using System.Diagnostics;
    ...
    foreach ( Process p in Process.GetProcesses(System.Environment.MachineName) )
    {
        if( p.MainWindowHandle != IntPtr.Zero)
        {
            //顯示用戶程序名
            Console.WriteLine( p ); // string s = p.ToString();
        }
    }

posted on 2005-11-24 09:19 夢在天涯 閱讀(2841) 評論(4)  編輯 收藏 引用 所屬分類: C#/.NET

評論

# C#加載圖片問題 2007-08-18 19:55 阿國

假如我有10張圖片或更多,我想像用imagelist一樣 存在一個集合里 用索引調用 又不想直接放在程序目錄下讓人看見 我應該怎么做  回復  更多評論   

# re: 個人整理-C#編程實用小技巧- - 2007-08-19 20:27 夢在天涯

直接加載到資源里,應該就可以不放到目錄下了,應該是你說的要求!  回復  更多評論   

# re: 個人整理-C#編程實用小技巧- - 2007-10-05 18:18 深圳瑜伽

國慶快樂哦。。。。。
  回復  更多評論   

# re: 個人整理-C#編程實用小技巧- - 2007-10-08 10:47 人才招聘

上班也快樂^_^  回復  更多評論   

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1814982
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美成人精品在线| 亚洲一区免费在线观看| 欧美国产专区| 欧美性jizz18性欧美| 国产精品久久久久久久7电影 | 狠狠色综合网| 一区二区三区自拍| 亚洲欧洲精品一区二区三区不卡 | 久久黄色级2电影| 看片网站欧美日韩| 国产精品不卡在线| 1000部精品久久久久久久久| 一本一本久久a久久精品牛牛影视| 亚洲精品国产品国语在线app| 一区二区三区精品国产| 午夜在线电影亚洲一区| 快播亚洲色图| 亚洲欧美在线一区二区| 欧美激情一区二区三区在线| 国产一区二区三区丝袜| 亚洲天堂成人在线观看| 欧美成人精品在线观看| 性伦欧美刺激片在线观看| 麻豆精品网站| 伊人久久大香线蕉av超碰演员| 亚洲一级特黄| 亚洲第一中文字幕在线观看| 亚洲欧美日韩精品久久久| 欧美高清在线观看| 91久久久久久久久| 欧美成人中文| 一区二区三区久久| 日韩一级黄色av| 欧美日韩精品欧美日韩精品| 一本一本久久a久久精品综合麻豆| 欧美成人一区二区三区在线观看| 久久久久久久久蜜桃| 亚洲欧美日韩国产| 性做久久久久久久免费看| 欧美主播一区二区三区| 亚洲国产日韩在线| 欧美大片免费看| 一区二区激情视频| 亚洲免费av电影| 国产精自产拍久久久久久| 久久av红桃一区二区小说| 久久aⅴ国产紧身牛仔裤| 影院欧美亚洲| 一区二区三区欧美亚洲| 国产日韩综合| 欧美激情亚洲一区| 欧美色区777第一页| 国产精品日韩高清| 久久婷婷久久| 欧美日韩国产色综合一二三四 | 一区二区三区免费观看| 国产欧美日韩专区发布| 亚洲国产精品久久精品怡红院| 国产精品激情电影| 欧美gay视频| 国产精品女人毛片| 欧美激情精品| 激情亚洲网站| 亚洲欧美日韩在线高清直播| 亚洲乱码国产乱码精品精| 午夜在线电影亚洲一区| 亚洲伊人久久综合| 欧美日韩亚洲国产精品| 亚洲国产精品成人va在线观看| 午夜精品福利视频| 亚洲午夜羞羞片| 欧美日韩国产二区| 亚洲欧洲精品天堂一级| 亚洲黄网站在线观看| 欧美99久久| 亚洲娇小video精品| 日韩视频在线免费观看| 欧美日韩一区不卡| 亚洲在线播放| 农夫在线精品视频免费观看| 亚洲国产精品一区在线观看不卡| 欧美亚洲一区二区三区| 美女999久久久精品视频| 亚洲人精品午夜| 欧美日本中文| 欧美一级大片在线免费观看| 欧美激情中文不卡| 亚洲欧美日韩人成在线播放| 国内精品免费在线观看| 欧美精品一区二区精品网| 午夜老司机精品| 欧美国产欧美亚洲国产日韩mv天天看完整 | 中文精品一区二区三区| 欧美色大人视频| 久久琪琪电影院| 亚洲综合欧美日韩| 亚洲电影成人| 久久久亚洲成人| 亚洲综合首页| 久久久欧美精品| 亚洲女同精品视频| 亚洲啪啪91| 久久综合网色—综合色88| 欧美一区在线看| 亚洲天天影视| 正在播放欧美一区| 亚洲桃色在线一区| 亚洲午夜国产一区99re久久| 亚洲毛片在线观看.| 99在线精品视频| 亚洲精品午夜| 在线视频精品| 亚欧成人在线| 久久这里有精品视频| 久热re这里精品视频在线6| 久久久人成影片一区二区三区| 欧美一区二区成人6969| 久久久久国产免费免费| 久久久久国产精品麻豆ai换脸 | 欧美午夜宅男影院| 国产精品另类一区| 国产一区二区三区视频在线观看| 国产日产精品一区二区三区四区的观看方式 | 欧美一区二区三区在| 久久精品卡一| 欧美成人第一页| 国产精品久久91| 精品91免费| 亚洲校园激情| 欧美大片免费久久精品三p| 99re热这里只有精品免费视频| 亚洲综合不卡| 亚洲国产欧美日韩精品| 亚洲大片在线| 欧美在线观看一二区| 欧美3dxxxxhd| 国产精品成人在线| 在线色欧美三级视频| 亚洲欧美日韩在线不卡| 欧美凹凸一区二区三区视频| 亚洲午夜久久久久久久久电影院| 久久精品91| 国产精品私房写真福利视频 | 午夜精彩国产免费不卡不顿大片| 久久精品人人做人人综合| 欧美日韩综合在线免费观看| 精品99视频| 毛片精品免费在线观看| 亚洲自啪免费| 国产精品va在线播放我和闺蜜| 99精品热6080yy久久| 亚洲欧洲日本mm| 欧美激情综合色| 亚洲少妇在线| 一区二区高清视频在线观看| 欧美剧在线观看| 亚洲欧美成人一区二区在线电影 | 国产人成精品一区二区三| 亚洲综合日韩中文字幕v在线| 99re8这里有精品热视频免费| 欧美三级视频在线观看| 香蕉亚洲视频| 免费一级欧美片在线播放| 亚洲精品护士| 亚洲欧美不卡| 亚洲精品九九| 久久福利电影| 国产精品99久久久久久人| 欧美中文在线字幕| 亚洲精品视频在线观看网站 | 欧美日韩精品在线| 欧美影院成人| 欧美激情一区在线| 久久久久9999亚洲精品| 欧美激情免费在线| 乱人伦精品视频在线观看| 欧美日韩精品免费观看视频| 久久久久久久久久久久久久一区| 老司机精品视频一区二区三区| 亚洲一区二区三区777| 免费黄网站欧美| 另类天堂av| 激情欧美一区二区| 亚洲欧美日韩一区二区| 亚洲资源在线观看| 欧美日韩在线大尺度| 亚洲欧洲日夜超级视频| 91久久在线| 欧美国产精品| 亚洲黄色一区二区三区| 最新日韩欧美| 欧美全黄视频| 中日韩美女免费视频网址在线观看| 亚洲无线一线二线三线区别av| 欧美激情欧美激情在线五月| 亚洲精品一区在线| 亚洲欧美一区二区三区久久 | 国产日韩欧美一二三区| 亚洲欧美美女| 欧美激情在线观看|