C#编程实用小技巧

发布时间:2020-03-13 20:47    浏览次数 :

[返回]

何以装载等待光标? 

01、在C#应用程序中怎么样在运作时将窗口最大化?

光标是Drawing名称空间的一局地。要突显一个特定的光标,能够查看文档获得全体可用的档案的次序。要呈现等待光标,请试试以下代码:

02、利用C#编写制定Web下的邮件发送程序

componentsName.Cursor = System.Drawing.Cursors.WaitCursor;

03、C#DOS调控台程序连接SQLServer数据库的点子

// back to arrow

04、C#中ListView的精简利用表明

Cursor = Cursors.Arrow

05、C#中加载图片与读取图片上的像素点方法

什么样赢得机器上正在周转的进度?

06、窗体间传递复杂数据

行使System.Diagnostics.Process类能够运营和终止系统经过。GetProcesses函数重回了机械上正在周转的兼具进度,它有二种概念,一种是用来地方机械,另一种用于远程机器。

07、怎么样在.net的应用程序运转别的的EXE文件?

若是想要获取当地机械上的运作进程,使用GetProcesses(卡塔尔(قطر‎;不然使用GetProcesses(string machinenameState of Qatar:

08、怎么着检查测量检验当前操作系统?

public static Process[] GetProcesses();

09、如何获取正在运营程序的路线?

public static Process[] GetProcesses(string);

10、怎样查看Computer中一度安装的有所程序集?

比如:

11、怎么样用System.Windows.Forms.Application.CompanyName设置公司名称?

Process[] procList = new Process[100];

12、借使顾客的计算机未有安装.NET运维框架,是还是不是足以运营.NET的前后相继?

procList = Process.GetProcesses();

13、如何得到本地的IP地址?

for ( int i=0; i<20; i++)

14、怎么样保管在C#中独有多少个程序(实例卡塔尔(قطر‎运维?

{

15、如何把富有的类别中正在运行的享有进程显示出来吗?

string strProcName = procList.ProcessName;

16、如何列出装有正在运行的应用程序呢?

int iProcID = procList.Id;;

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设置为服务器控件运转。

请不要遗忘援用System.Diagnostic,将以下那行代码写在using列表中:

  查看WebForm1.aspx的HTML源代码,改进标签,增加属性设置encType="multipart/form-data";
  在C#代码中加多对命名空间System.Web.Mail的引用(必要利用该名称空间下的MailMessage类和SmptMail类),MailMessage类对象用来设定要发送邮件的相关音讯,如收件人,发件人,主题,内容,优先级,格式甚至附属类小构件;使用SmptMail类的Send方法将MailMessage对象发送出去。
  注:要在C:Inetpubwwwroot目录下创办一个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:Inetpubwwwroot文件夹下创立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 (" ");
  }

using System.Diagnostics;

03、C#DOS调控台程序连接SQLServer数据库的章程(TOP卡塔尔(قطر‎

通过运用Process类的不二法门,大家居然足以启动、截至或吊销进度。

①、创设一个C#的DOS调整台应用程序;
②、增多命名空间:using System.Data.SqlClient;;
③、连选择数据源,通过创立四个采用连接字符串的连续几日对象来成功:
SqlConnection connection = new SqlConnection(@"Data Source=MySER;Integrated Security=SSPI;Initial Catalog=pubs");
  在那之中的MySE奥德赛是设置了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";
⑥、使用Data里德r以只读格局获取数据结果:
SqlDataReader reader = command.ExecuteReader();
⑦、从Data里德r中获取数据:
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]是所筛选的第2个列的值
}

使用System.Diagnostics.Process类能够运维和终止程序,那些类的Start函数可用以运转三个exe文件。比如,假诺想在浏览器中开发三个U奥迪Q7L,就足以将UOdysseyL作为参数字传送递给Start函数:

05、C#中加载图片与读取图片上的像素点方法(TOP卡塔尔(قطر‎
(1State of Qatar在.NET中成立三个窗体,参预picture博克斯控件。设置其Image为空,SizeMode属性设为AutoSize;
(2卡塔尔(قطر‎参预一个button控件,用于张开图片文件;
(3卡塔尔插足多少个textBox控件,用于表示PAJEROGB八个颜色的值。
(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();

System.Diagnostics.Process.Start("");

   //在这处加载二个新的图片。
   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卡塔尔;//能够以此方法对COLOMurano变量进行冠道GB值设置。
    textBox1.Text = pixelColor.R.ToString();
    textBox2.Text = pixelColor.G.ToString();
    textBox3.Text = pixelColor.B.ToString();
   }

何以张开Wav文件?

06、窗体间传递复杂数据(TOPState of Qatar
源代码下载请点这里
  在安插窗体程序时再三需求相互调用的窗体间传递复杂的多少,不时候以致须求子窗体育学园订父窗体的内容。前阵子在天涯论坛中见到不菲人切磋这几个难点,在海天一鸥《窗体间传值和窗体间互操作》的褒贬中,笔者看来有这么两种做法: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;
}
  那样保证父窗体知道子窗体,而子窗体不明白父窗体。父窗体制纠正变后无需再一次编写翻译子窗体。同时八个窗体都信赖于结果对象,结果对象的国富民强也调控了父窗体与子窗体关系的稳固性。上面是程序运转结果:
  注:提供的代码仅仅是职能演示,纵然实际行使供给丰盛一些十三分帮助代码(对象释放、撤废事件订阅等)。

能够用PlaySound API来播放叁个wav文件。使用sysimport引进二个DLL,并在动用前将以此API定义为全局性的。请看上边调用API的代码:

07、怎样在.net的应用程序运营其余的EXE文件?
解答:首要选取System.Diagnostics名字空间中的Process类
最首要代码:
    Process proc = new Process();
    proc.StartInfo.FileName = @"D:Program FilesFoxmailFoxmail.exe"; //能够用相对路线
    proc.StartInfo.Arguments = "";
    proc.Start();

[sysimport(dll="winmm.dll")]

08、怎么样检测当前操作系统?
解答:应用System名字空间中的Environment类
根本代码:
    string versionText = Environment.OSVersion.Version.ToString();

public static extern long PlaySound(String lpszName, long hModule, long dwFlags);

09、怎么样赢得正在运营程序的门道?
解答:调用Application类中的ExecutablePath静态成员取得路线
主要代码:
    textBox1.Text = Application.ExecutablePath;

下一篇:没有了