C#Winform如何实现日志信息实时显示到窗体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#Winform如何实现日志信息实时显示到窗体相关的知识,希望对你有一定的参考价值。

你可能在输出到显示窗体后加上Application.DoEvents();,当然这种方式,牺牲了速度,这是我这几天刚好写的的代码,让事件的输出在listbox上实时显示,

     /// <summary>

/// 通过ping 获取IP地址,速度快,效率高

/// </summary>

/// <param name="IpHead">默认为192.168.0</param>        

        public  void EnumComputers(string IPhead="192.168.0")

try 

for (int i = 1; i <= 255; i++)

   Ping myPing;

myPing = new Ping();

myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted);

string pingIP = IPhead + i.ToString();

myPing.SendAsync(pingIP, 1000, null);//异步执行PING

Application.DoEvents(); //相当于每次循环输出一次就处理所有的当前在消息队列中的Windows消息。

catch   

 private void _myPing_PingCompleted(object sender, PingCompletedEventArgs e)

try      //如查PING成功就获取当前IP地址的信息

      if (e.Reply.Status == IPStatus.Success)

      IPHostEntry host = Dns.GetHostEntry(e.Reply.Address.ToString());

ipinfo myipinfo = new ipinfo();

myipinfo.ipaddress = e.Reply.Address.ToString();

myipinfo.hostname = host.HostName;

myipinfo.iPAddresslist = host.AddressList;

ipinfos.Add(myipinfo);

Console.WriteLine(e.Reply.Address.ToString() + "|" +myipinfo.hostname);                       listbox.Items.Add(myipinfo.hostname+"---"+myipinfo.ipaddress);

    catch  

或者你可以用线程委托加回调相关知识来实现,

参考技术A 能把问题描述清楚一点吗?数据显示在什么地方?数据源是什么?数据库还是xml文件?拖一个datagridview控件,在窗体的load事件中写如下代码: string connStr = "server=.;Integrated Security=SSPI;database=你的数据库名称"; SqlDataAdapter adapter = new SqlDataAdapter("select * from 要显示数据的表名称", connStr); DataSet se = new DataSet(); adapter.Fill(se); this.dataGridView1.DataSource = se.Tables[0]; 如果数据有更新,只需要重新绑定一次数据源就OK了。

winform窗体如何实现自动登录功能?

有一个登录窗体,上面有帐号,密码!记住密码功能我已经做上了,现在就差自动登录功能了!请高手指点,如何实现自动登录?

WebForm 记住密码是将帐号和密码(或者加密后的验证信息)放到 Cookies 里面的,这样,在页面打开的时候先验证 Cookies 里面的登录信息,如果登录信息是存在的,且验证通过,那么就直接跳转到正常用户操作界面,如果信息不存在或者验证失败,那么就不跳转。

Winform 思路是一样的,你将验证信息保存,在登录页面的时候先验证这个信息是否合法,合法的话就跳过登录窗口,不合法的话就让他自动在登录窗口呆着。

如果你现在程序结构不好改的话,那么可以用另一种简单的方式,你记住密码功能已经做好了,那么在他打开程序的时候,恢复他帐号密码输入框后,在执行以下 “登录” 按钮的 onclick 事件就行了。跟调用方法一样,如果按钮没有特殊操作,那传入的两个值就建空实例传过去就行。
如果是在 form_load 里面调用按钮,那么直接将 form_load 的 (object sender, EventArgs e) 这两个参数,作为按钮参数传过去也行,如:
button1_Click(sender, e);
参考技术A 解决问题的思路:
 1:先把数据库里的用户名密码,都修改为有规律的密码,由于我们用的是测试数据库,所以密码是可以随便修改的,我们编写一段程序让系统中所有的用户的密码与用户名相同,由于密码在数据库里是加密的,所以需要用程序脚本来设置。
 2:在设置密码的同时,我们把自动运行的DOS脚本指令也获取了,那不是一箭双雕了不是,那我们就编写一段程序来实现一下这2个任务。
参考技术B 都是可以自动连接的啊,不管是无线网卡还是笔记本电脑 参考技术C 好像有个timer控件 你可以试试本回答被提问者采纳 参考技术D 这个不太容易,你可以去百度一下网上有很多写的代码~!

以上是关于C#Winform如何实现日志信息实时显示到窗体的主要内容,如果未能解决你的问题,请参考以下文章

C#WinForm中如何修改窗体显示的位置?

winform窗体如何实现自动登录功能?

C#Winform实时更新数据库信息Demo(使用Scoket)

我想用winForm窗体,实现对文本文件进行操作。

C#winform如何实现状态栏

C# winform程序,怎么实现菜单的功能?