青铜器真是个折磨人的东东,落下了好几天的“工作情况”,得一天天补呀。蛋疼的是每天的工作情况不能完全一样,所以写了个工具,方便以后填写日报用。
工具的编写思路是:建立一个字符串数组,里面装上几十条工作任务,每单击一次“生成工作情况”按钮就从中随机选出四条不重样的,复制到剪贴板。

主要的控件就2个
1)上面的文本框txtGoing,要求只读,字体调大些
2)下面的生成按钮btnGenerate
还有就是注意窗体的TopMost属性要调成True,免得操作网页的时候小窗口就跑到后面去了
程序代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LogTool
{
public partial class FormMain : Form
{
//工作情况待选项
public string[] GoingText = new string[]
{
"维护监控客户端,优化代码",
"与研发中心协调解决监控客户端的内存泄漏问题",
"学习C++编程",
"熟悉linux环境",
"修复程序BUG,发布版本",
"搭建环境,测试程序运行",
"对程序进行新一轮的自测,优化代码",
"阅读项目文档,学习项目相关知识",
"研究监控数据脚本,熟悉Linux上的Oracle数据库相关知识",
"修订详细设计文档",
"维护监控系统,为NEEQ提供技术支持",
"探讨新需求的实现,评估新需求的可行性",
"制定了新需求的实现时间表",
"程序编码",
"程序新功能实现,发布新版本",
"参加业务相关的集中培训",
"总结程序运行环境,完善程序相关文档",
"为程序部署提供技术支持",
"完善监控客户端使用手册"
};
public FormMain()
{
InitializeComponent();
}
//随机生成4条工作情况
private void btnGenerate_Click(object sender, EventArgs e)
{
try
{
//随机生成4个不重复的数字由小到大排列
Random rd = new Random(DateTime.Now.Millisecond);
int[] rdnum = new int[4];
rdnum[0] = rd.Next(GoingText.Length);
rdnum[1] = rd.Next(GoingText.Length);
while (rdnum[1] == rdnum[0])
{
rdnum[1] = rd.Next(GoingText.Length);
}
rdnum[2] = rd.Next(GoingText.Length);
while (rdnum[2] == rdnum[0] || rdnum[2] == rdnum[1])
{
rdnum[2] = rd.Next(GoingText.Length);
}
rdnum[3] = rd.Next(GoingText.Length);
while (rdnum[3] == rdnum[0] || rdnum[3] == rdnum[1] || rdnum[3] == rdnum[2])
{
rdnum[3] = rd.Next(GoingText.Length);
}
Array.Sort(rdnum);
//生成工作情况
StringBuilder sb = new StringBuilder();
sb.Append("1." + GoingText[rdnum[0]] + "\r\n");
sb.Append("2." + GoingText[rdnum[1]] + "\r\n");
sb.Append("3." + GoingText[rdnum[2]] + "\r\n");
sb.Append("4." + GoingText[rdnum[3]] + "\r\n");
this.txtGoing.Text = sb.ToString();
Clipboard.Clear();
Clipboard.SetText(sb.ToString()); //复制到剪贴板
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
END
原文:http://my.oschina.net/Tsybius2014/blog/323772