`
mlzboy
  • 浏览: 724840 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

问题解答集

阅读更多

目录

问题解答集    1

目录    2

修订历史记录    3

1有关Update程序    4

在程序中加入可复制到输出文件夹的XML文件    4

2 有关练习    7

2.1 richTextBox中输入用于介绍的文字    7

2.2 Timer控件的使用    8

2.3 c#中的跨线程调用    10

2.4 c#调用系统命令    12

2.5 c# 调用一个button的click事件处理函数    13

2.6判断输入的网址前是否加http://    14

2.7更该流的编码格式    14

2.8设置comboBox的初始值    15

2.9 如何在VS2005中添加工具箱项(VS2003中的自定义工具箱选项)    15

2.10 vs2005中为什么没有vs2003中的toolbar,tab控件了?? 已用ToolStrip和TabControl替代!    17

2.11下载文件是如何打开保存文件对话框    17

 

1有关Update程序

  1. 在程序中加入可复制到输出文件夹的XML文件

    可以在VS中直接加入需要在程序中使用的Xml文件,方法如下:

    图 1-1

    首先在资源管理器中右击项目,单击添加(图 1-1,1-2),

    图 1-2

    在添加新项中选择添加Xml文件,并输入文件名。(图 1-3)

    图 1-3

    此时就可以在VS中编辑Xml文件了。(图 1-4)

    图 1-4

    如果程序需要在拷贝到其他机器上正确运行,则需要将.exe文件与Xml文件放入同一个文件夹中,所以需要将.xml文件进行复制。

    图 1-5

    如图 1-5所示,在资源管理器中单击。Xml文件后,在其属性选项中的复制到输出目录选项设置为如果较新则复制或始终复制。此时,如果解决方案配置选项选择的是Debug型,则Xml文件将输出到Debug文件夹,如果选择的是release型,则输出到release文件夹。(图 1-6)

    图 1-6

    2 有关练习

    2.1 在richTextBox中输入用于介绍的文字

    在richTextBox中显示说明型文字的好处是,可以在设计视图中直接输入文字如不用在程序中输入。而且自动换行。用法如图(2-1 2-2)。

    图 2-1

    图 2-2

    2.2 Timer控件的使用

    Timer 空间用于计时,以一定的时间间隔重复执行某一部分程序。首先要拖入timer控件,在属性设置中Interval比较重要,其功能是设置时间的间隔,以毫秒为单位。(图 2-3)

    图 2-3

    设置事件非常重要,不设置相关事件计时器就不对任何程序段作定时刷新的处理。选择相应的程序段。(图 2-4)

    图 2-4

    2.3 c#中的跨线程调用

    在不是创建空间的子函数中调用控件会造成线程冲突,下面的方法用于解决此问题。

    delegate void SetTextCallback();//此处用于线程处理

    //此句放在Form中开头处。

     

     

     

    private void button1_Click(object sender, EventArgs e)

    {

    System.Timers.Timer t = new System.Timers.Timer(1000);//实例化Timer类,设置间隔时间为毫秒;

     

    t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;

    t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;

    t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);

     

    //如何控制其停止?

     

    this.listBoxGo.Items.Add("hey!");

    this.listBoxGo.Items.Add("haha!");

    }

     

     

    private void theout(object source, System.Timers.ElapsedEventArgs e)

    {

     

    SetText();

     

    }

     

     

     

     

    //方法...Ok 进行线程比较,如果冲突则重复,否则更改progressBar.Value的值

    private void SetText() //可在此方法处设置progressBar.Value的值,不会出现线程冲突

    {

    // InvokeRequired required compares the thread ID of the

    // calling thread to the thread ID of the creating thread.

    // If these threads are different, it returns true.

     

    const int step = 3;

     

    if (this.progressBar1.InvokeRequired&&progressBar1.Value<progressBar1.Maximum)

    {

    SetTextCallback d = new SetTextCallback(SetText);

    this.Invoke(d, new object[] { });

    }

    else

    {

    if (this.progressBar1.Value + step <= this.progressBar1.Maximum)//赋值时考虑是否会超过progressBar.Maximum

    this.progressBar1.Value += step;

    else

    {

    progressBar1.Value = 100;

     

    }

    }

    }

     

    上面的程序意义,生命timer控件,每一秒中调用一次theout函数,theout函数的功能只是调用SetText函数(因为此处要求的函数参数不同,所以这样设置),之后在SetText函数中进行线程处理。

    2.4 c#调用系统命令

    using System;

    using System.IO;

    using System.Diagnostics;

     

    class LaunchDirCommand {

    static void Main() {

    ProcessStartInfo psi = new ProcessStartInfo();

    psi.FileName = "cmd.exe";

    psi.Arguments = "/c dir c:";

    psi.RedirectStandardOutput = true;

    psi.UseShellExecute = false;

    Process p = Process.Start(psi);

    StreamReader stmrdr = p.StandardOutput;

    string s = stmrdr.ReadToEnd();

    Console.WriteLine(s);

    }

    }

    这段程序是控制台程序,相应的可应用于WinForm程序。改程序通过cmd命令调用系统的命令。在设置参数时,形式为"/c 命令";一定要注意中间的空格。如调用ping命令,可设置参数为"/c ping 172.27.8.59";调用ping –t 时,参数为"/c ping 172.27.8.59 -t";如果所用地址为用户输入,例如存放在textBox中,可设string str = "/c ping" + textBox.Text + " -t";

    一定要注意空格,否则极容易出错。

    2.5 c# 调用一个button的click事件处理函数

    例如,在一个textBox中输入网址,然后回车要产生与点击连接go按钮相同的功能。可以找到textBox空间的KeyPress事件,双击添加

    事件处理程序。

    private void textBoxUrl_KeyPress(object sender, KeyPressEventArgs e)

    {

    object a = new object();

    EventArgs b = new EventArgs();

    //判断是否按下了Enter键

    if(e.KeyChar ==(char)13)

    buttonSend_Click(a, b);

    }

    此处如果检测到按下了Enter键,则调用buttonSend_Click()函数。因为buttonSend_Click()函数需要两个参数,一个为object型,另一个为EventArgs型。而此时有没有具体的参数要传给函数,所以之前要new两个相应类型的参数。

    2.6判断输入的网址前是否加http://

    如果用HttpWebRequest类进行网页下载,建立连接时要求输入的地址必须是严格的http://形式。所以,接受用户输入后用string变量存储,然后使用ToLower()方法将其变成小写,之后判断是否以http://开头,如果不是,加上这个开头。具体代码:

    string url = this.textBoxUrl.Text;

    url.ToLower();

    if (url.IndexOf(@"http://") == -1)

    {

    url = @"http://" + url;

    this.textBoxUrl.Text = url;

    }

    2.7更该流的编码格式

         编码格式不正确会造成输出乱码。下面的代码将从HttpWebRequest类读出来的Stream更改格式,使其可以在richTextBox中正确的显示中文而不出现乱码。

    //HTTP请求变量

    HttpWebRequest req;

    //HTTP应答变量

    HttpWebResponse res;

    //基础数据流

    Stream s;

    //读数据流

    StreamReader r;

     

    req = (HttpWebRequest)WebRequest.Create(textBoxProxy.Text);//发送请求HttpWebRequest

    res = (HttpWebResponse)req.GetResponse();//接受HttpWebResponse类型的来自HttpWebRequest类型的//回应

    s = res.GetResponseStream();//基础数据流的设置

    r = new StreamReader(s,System.Text.Encoding.Default);//StreamReader 读取流

    richTextBoxProxy.Text = r.ReadToEnd();

    2.8设置comboBox的初始值

    comboBox的一系列值对应从0开始的一系列整数。其初始化。

    this.cmbPriority.SelectedIndex = 0;

    2.9 如何在VS2005中添加工具箱项(VS2003中的自定义工具箱选项)

    在工具箱处右击,选择选择项(图)

    然后即刻在弹出的对话框中进行相应得选择,其功能相当于VS2003中的自定义工具箱.

    2.10 vs2005中为什么没有vs2003中的toolbar,tab控件了??

    已用ToolStrip和TabControl替代!

    2.11下载文件是如何打开保存文件对话框

    SaveFileDialog类用于打开保存文件对话框.

    SaveFileDialog sDialog = new SaveFileDialog();

    sDialog.Filter = "网页(*.htm;*.html)|*.htm;*.html";

    //显示保存文件对话框

    if (sDialog.ShowDialog() == DialogResult.OK)

    {

    //得到保存文件名

    this.txt2_Add.Text = sDialog.FileName;

    }

    .Filter设置保存文件的类型,此处将要保存的文件的路径和名称存到TextBox中,在写入文件内容时可从TextBox中读取.写入时用到流.

     

     

     

     

     

     

分享到:
评论

相关推荐

    上市公司执行企业会计准则监管问题解答合集.pdf

    【企业会计准则监管问题解答合集】 在上市公司执行企业会计准则的过程中,监管机构对一系列问题提供了详细的解答。这些解答涉及到多个关键的会计处理和报告方面,对于理解和遵守会计准则至关重要。 1. **稀释每股...

    linux中常见问题解答集

    ### Linux中常见问题解答集 #### 一、基础概念与操作 **1.1 Root用户权限** - **问题描述:** 在Linux系统中,经常需要使用root用户进行一些操作,但有时不知道如何切换到root用户或者担心误用root权限导致系统...

    安卓系统手机常见问题解答集.docx

    安卓系统手机常见问题解答集.docx

    电子杂志制作软件iebook超级精灵XXXX常见问题解答集 大全.docx

    电子杂志制作软件iebook超级精灵XXXX常见问题解答集 大全.docx

    电子杂志制作软件iebook超级精灵某常见问题解答集大全.doc

    电子杂志制作软件iebook超级精灵某常见问题解答集大全.doc

    PCB设计问题解答集.docx

    PCB板

    ChatGPT技术使用中常见问题解答合集.docx

    ChatGPT技术的使用教程、使用方法、使用技巧、使用注意事项、使用中常见问题

    linux常见问题解答集中版

    linux常见问题解答集,包括:如何建立多用户、如何使用软盘、光盘以及DOS等非Linux分区、如何安装Linux的应用软件等等

    Solutions_to_Problems_in_Cosmology.pdf

    ### 宇宙学问题解答集概述 文件标题《Solutions_to_Problems_in_Cosmology.pdf》表明这是一个关于宇宙学问题解答的文档。文档描述表明它是第二版《Physical Foundations of Cosmology》由 V. Mukhanov 所著书中第一...

    100个安卓手机常见问题解答锦集.docx

    100个安卓手机常见问题解答锦集.docx100个安卓手机常见问题解答锦集.docx100个安卓手机常见问题解答锦集.docx100个安卓手机常见问题解答锦集.docx100个安卓手机常见问题解答锦集.docx100个安卓手机常见问题解答锦集....

    CISCO常见问题及解答(全集)

    CISCO常见问题及解答(全集)

    oracle常用问题解答

    ### Oracle常用问题解答知识点 #### 1. SQL & PL/SQL ##### 1.1 查询特殊字符,如通配符%与_ **问题**: 如何在Oracle中查询包含特殊字符如通配符%与_的数据? **解答**: 在Oracle中查询包含特殊字符如通配符%与_...

    数学物理方法习题集(武仁第二版)解答

    武仁第二版的解答集不仅提供了答案,还往往解析了解题步骤和思路,这对于自主学习和复习至关重要。它能帮助学生检查自己的理解,发现并修正错误,同时也能提升他们独立解决问题的能力。 在解答集里,你可以找到关于...

    Chatbot的心理健康常见问题解答数据集.zip

    《Chatbot心理健康常见问题解答数据集》是一个专为自然语言处理(NLP)设计的数据集,主要用于训练和优化聊天机器人,使其能够有效地处理与心理健康相关的问题。数据集包含了一个CSV文件Mental_Health_FAQ.csv以及一...

    网管常见问题解答集合.rar

    网管常见问题解答集合.rar 网管常见问题解答集合.rar 网管常见问题解答集合.rar

    c programming FAQs

    《C语言编程常见问题解答》(C Programming FAQs)是关于C语言的常见问题解答集,由Steve Summit撰写,并于1995年由Addison-Wesley出版(ISBN 0-201-84519-9)。这本书回答了C语言编程社区中常见的495个问题。本书的...

    88.MATLAB教程 Matlab 80问.rar

    这个"88.MATLAB教程 Matlab 80问.rar"压缩包很可能包含了一套详细的MATLAB问题解答集,涵盖了80个常见问题,旨在帮助用户深入理解和掌握MATLAB的基本用法和高级特性。 1. **基础知识**:MATLAB的基础知识包括变量...

    Review1-2Solutions.rar_Able_paper

    这个压缩包内含的"Review1-2Solutions.pdf"文件,是一个详细的问题解答集,旨在提升我们对数字理论和技术的理解。 首先,我们要明白数字概念是信息技术的基础,它涵盖了二进制、数字编码、数字逻辑以及数字系统等多...

Global site tag (gtag.js) - Google Analytics