摘要: “中国99%的白领以及他们的家庭即将面临破产。而且是必然破产!无路可逃!这件事可能是发生在未来2-10年。你可以尽量去怀疑这个数字。但它必然发生,绝非危言耸听。” 就如我预言中国国营企业职工必然失业一样,在当时来说没人信。但确实会发生。因为在中国这样一个发展中国家,其必然以不断的以通货膨胀和改革手段来换取经济的发展。而每一次改革所带来的阵痛都是由百姓来承担的。无论是上山下...
阅读全文
posted @ 2009-08-11 19:47 过错 阅读(108) 评论(0)
编辑
摘要: http://www.verycd.com/topics/2737205/ed2k://|file|%E5%BE%AE%E8%BD%AF%E7%99%BE%E7%A7%91%E5%85%A8%E4%B9%A6.Encarta.2009.iso|3273437184|62d6e7292c071e358bab04f736c2000e|h=TBEBM5SO4WTIWGR3RI3OA5B3DXSVEC7U...
阅读全文
posted @ 2009-03-24 19:25 过错 阅读(1156) 评论(0)
编辑
摘要: 用单元测试当然要会使用mock啦资料不多 下来看看吧 用的到的话日本旅客给铁道部部长写感谢信,对大连铁路员工表示深深的敬意和衷心的感谢这种待遇只有在中国能感受到 新商报讯()昨日,大连客运段收到一封从铁道部转来的日本国大阪府松原市立部杉本洋江写来的表扬信,信中,这位日本旅客对大连客运段客运四队2219次第 六乘务组列车长于金文及其班组乘务员给予了高度评价和热情赞扬。信中写道,“部长阁下...
阅读全文
posted @ 2008-11-05 09:35 过错 阅读(530) 评论(1)
编辑
在TabControl控件中并没提供单个选项卡的Click事件,今天下午翻了翻MSDN 结果还是没找到相关的文档:( 看来只有自个儿折腾了...
还好有个SelectedIndexChanged事件为我所用:)
以下是代码片段:
private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e)
{
switch(this.tabControl1.SelectedIndex)
{
case 0:
MessageBox.Show("tabPage1 is Selected");
break;
case 1:
MessageBox.Show("tabPage2 is Selected");
break;
}
}
在WinForm开 发的过程中,MDI是一种常见的形式。在MDI主窗体打开的子窗体处于活动状态的只有一个,很多时候我们需要在打开的MDI子窗 体中切换。然而.Net的框架并没有提供一种易见的切换方式,当然可以通过“Ctrl+Tab”来切换,但是这种方式是不易见的,并且只能按照打开窗体的 顺序来切换。
下面来介绍一种结合了TabCotrol控件的软件设计形式。

这种设计形式要解决三个问题:
(1)TabControl的TabPage要和窗体对应
(2)TabControl的TabPage切换的时候,对应的窗体要激活
(3)窗体的新建或关闭,对应的TabPage要创建或撤销
下面就来一步步的解决这些问题
首先拖一个TabControl控件到MDI主窗口中,设置其DOCK为Bottom或者TOP,根据需要也可以设置到左或右。设置其Height为0。主窗体添加如下代码:
//切换TabPage,将对应的窗体激活
private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.MdiChildren.Length > 0)
{
for (int i = 0; i < this.MdiChildren.Length; i++)
{
if (this.tabControl.SelectedIndex == i)
{
this.MdiChildren[i].Activate();
return;
}
}
}
}
or
//切换TabPage,将对应的窗体激活
private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
{
this.ChangeTabPage();
}
//子窗体切换激活
private void ChangeTabPage()
{
if (this.MdiChildren.Length > 0 && tabControl.SelectedIndex > -1)
{
for (int i = 0; i < this.MdiChildren.Length; i++)
{
if (this.tabControl.SelectedIndex == i)
{
this.MdiChildren[i].WindowState = FormWindowState.Maximized;
this.MdiChildren[i].Visible = true;
this.MdiChildren[i].Activate();
}
else if (this.MdiChildren[i].Visible == true)
{
this.MdiChildren[i].Visible = false;
}
}
}
}
//增加TabPage,将对应的窗体激活
private void tabControl_ControlAdded(object sender, ControlEventArgs e)
{
if (this.tabControl.SelectedIndex == 0)
this.ChangeTabPage();
}
//关闭TabPage,将对应的窗体关闭
private void tabControl_ControlRemoved(object sender, ControlEventArgs e)
{
//if (this.tabControl.SelectedIndex == 0)
//this.ChangeTabPage();
}
//窗体关闭的时候,撤销对应的TabPage
public void RemoveTabPage(TabPage tb)
{
this.MultiPageControl.TabPages.Remove(tb);
if (this.tabControl.TabPages.Count == 0)
{
this.TabControlSize = new Size(this.TabControlSize.Width, 0);
}
}
//窗体创建的时候,创建对应的TabPage
public void AddTabPage(TabPage tb)
{
if (this.tabControl.TabPages.Count == 0)
{
this.TabControlSize = new Size(this.TabControlSize.Width, 20);
}
this.MultiPageControl.TabPages.Add(tb);
this.MultiPageControl.SelectedTab = tb;
}
//获取TabControl控件,以便子窗体调用(只读)
public TabControl MultiPageControl
{
get
{
return this.tabControl;
}
}
//获取TabControl控件的Size属性,以便子窗体调用
public Size TabControlSize
{
get
{
return this.tabControl.Size;
}
set
{
this.tabControl.Size = value;
}
}
对应子窗体,每个窗体打开的时候,主窗体都需要创建一个TabPage,关闭的时候,都要撤销一个TabPage,也就是说所有的子窗体都有共同的属性和功能,所以我设置了一个父窗体来实现这些功能,子窗体通过继承而拥有这些功能。
private frmMain frMain = null;
private TabPage tabPage = new TabPage();
private void frmTabMain_ParentChanged(object sender, EventArgs e)
{
if (this.MdiParent != null)
{
this.tabPage.Text = this.Text + " ";
frMain = this.MdiParent as frmMain;//获取主窗体
frMain.AddTabPage(tabPage);//调用主窗体方法,创建一个TabPage
}
}
//窗体被激活,对应的TabPage也呈选中状态
private void frmTabMain_Enter(object sender, EventArgs e)
{
if (this.frMain != null)
{
for (int i = 0; i < this.frMain.MdiChildren.Length; i++)
{
if (this.frMain.MdiChildren[i] == this)
{
this.frMain.MultiPageControl.SelectedIndex = i;
}
}
}
}
//窗体关闭,调用主窗体方法,撤销对应TabPage
private void frmTabTitleMain_FormClosed(object sender, FormClosedEventArgs e)
{
this.Dispose();
this.frMain.RemoveTabPage(tabPage);
}
//窗体加载的时候,将窗体的标题赋给对应的TabPage
private void frmTabMain_Load(object sender, EventArgs e)
{
// this.tabPage.Text = this.Text;
}
posted @ 2011-11-07 22:32 过错 阅读(908) 评论(1)
编辑
Bitmap myBitmap = new Bitmap(Image.FromFile(filePath ), 32, 32);
IntPtr Hicon = myBitmap.GetHicon();
Icon newIcon = Icon.FromHandle(Hicon);
FileStream outStream = new FileStream(@"d:/a.ico", FileMode.OpenOrCreate);
newIcon.Save(outStream);
outStream.Flush();
outStream.Close();
http://www.cnblogs.com/slave2/archive/2008/09/04/1284759.html
public System.Drawing.Bitmap GetBitmap(BitmapSource image) { System.Windows.Media.Imaging.BitmapSource bitmapSource = image as BitmapSource; double newWidthRatio = image.Width / (double)bitmapSource.PixelWidth; double newHeightRatio = ((image.Width * bitmapSource.PixelHeight) / (double)bitmapSource.PixelWidth) / (double)bitmapSource.PixelHeight; System.Windows.Media.Imaging.BitmapSource transformedBitmapSource = new System.Windows.Media.Imaging.TransformedBitmap( bitmapSource, new System.Windows.Media.ScaleTransform(newWidthRatio, newHeightRatio)); int width = transformedBitmapSource.PixelWidth; int height = transformedBitmapSource.PixelHeight; int stride = width * ((transformedBitmapSource.Format.BitsPerPixel + 7) / 8); byte[] bits = new byte[height * stride]; transformedBitmapSource.CopyPixels(bits, stride, 0); unsafe { fixed (byte* pBits = bits) { IntPtr ptr = new IntPtr(pBits); System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap( width, height, stride, System.Drawing.Imaging.PixelFormat.Format32bppPArgb, ptr); return bitmap; } } }
posted @ 2011-11-06 22:38 过错 阅读(77) 评论(0)
编辑
摘要: using System;02using System.Collections.Generic;03using System.Text;04using System.Threading;0506namespace 线程Thread07{08class Program09{1011public class MyThread12{13private string data;14public MyThread(string data)15{16this.data = data;17}18public void ThreadMain()19{20Console.WriteLine("Runn
阅读全文
posted @ 2011-09-25 00:01 过错 阅读(38) 评论(0)
编辑
[C#]代码
01 | HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(""); |
02 | req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)"; |
04 | req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; |
05 | req.Headers.Add("Accept-Language: en-us,en;q=0.5"); |
06 | req.Headers.Add("Accept-Encoding: gzip,deflate"); |
07 | req.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"); |
09 | req.Headers.Add("Keep-Alive: 300"); |
10 | req.Referer = "copy from url"; |
12 | req.ContentType = "application/x-www-form-urlencoded"; |
14 | String Username = copy from url; |
15 | String PassWord = copy from url; |
17 | StreamWriter sw = new StreamWriter(req.GetRequestStream()); |
18 | sw.Write(string.Format("&loginname={0}&password={1}&btnSubmit=Log In&institutioncode=H4V9KLUT45AV&version=2", Username, PassWord)); |
20 | HttpWebResponse response = (HttpWebResponse)req.GetResponse(); |
22 | StreamReader reader = new StreamReader(response.GetResponseStream()); |
23 | string tmp = reader.ReadToEnd(); |
[代码] Cookie 处理
01 | CookieCollection cookiesResponse = new CookieCollection(); |
05 | foreach (string cookie in response.Headers["Set-Cookie"].Split(';')) |
07 | string name = cookie.Split('=')[0]; |
08 | string value = cookie.Substring(name.Length + 1); |
09 | cookiesResponse.Add(new Cookie(name.Trim(), value.Trim(), path, domain)); |
posted @ 2011-09-24 23:12 过错 阅读(12) 评论(0)
编辑
select * from userinfo
返回最后记录的序号
select last_insert_rowid();
创建视图
create view schema as select * from sqlite_master;//
创建索引
CREATE INDEX test_idx on test (value)
创建表
CREATE TABLE sqlitenet_pictures (
UID INTEGER PRIMARY KEY AUTOINCREMENT,//主键 自增长
NAME VARCHAR(50),
PICTURE BLOB
);
删除记录
DELETE FROM foods WHERE id=413;
//插入记录
INSERT INTO foods VALUES (NULL, 'Whataburger');
:如果一个字段已经声明为UNIQUE,可以向这个字段插入多个NULL
SQLite 的观点是假设所有的NULL都是不同的
修改
UPDATE foods SET name='CHOCOLATE BOBKA'
WHERE name='Chocolate Bobka';
字符串值用单引号(')括起来,如果字符串中本身包含单引号,需要双写。如“Kenny’s chicken”需要写成:'Kenny''s chicken'
DEFAULT 还可以接受3 种预定义格式的ANSI/ISO 预定字用于生成日期和时间值。
CURRENT_TIME 将会生成ANSI/ISO 格式(HH:MM:SS)的当前时间。CURRENT_DATE 会
生成当前日期(格式为YYYY-MM-DD)。CURRENT_TIMESTAMP 会生成一个日期时间的组
合(格式为YYYY-MM-DD HH:MM:SS)。例如:
CREATE TABLE times ( id int,
date NOT NULL DEFAULT CURRENT_DATE,
time NOT NULL DEFAULT CURRENT_TIME,
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP );
SQL 中单行注释用双减号开始,多行注释采用C 风格的/* */形式。
在SQLite 中,当你定义一个表时总要确定一个主键,不管你自己有没有定义。这个字段是
一个64-bit 整型字段,称为ROWID。它还有两个别名——_ROWID_和OID,用这两个别名
同样可以取到它的值。它的默认取值按照增序自动生成。SQLite 为主键字段提供自动增长特性。
SQLite 对字符串的值是大小写敏感的
SELECT DISTINCT heading FROM tables WHERE predicate
GROUP BY columns HAVING predicate
ORDER BY columns LIMIT count,offset;

表4-2 二目操作符
操作符 类型 作用
|| String Concatenation
* Arithmetic Multiply
/ Arithmetic Divide
% Arithmetic Modulus
+ Arithmetic Add
– Arithmetic Subtract
<< Bitwise Right shift
>> Bitwise Left shift
& Logical And
| Logical Or
< Relational Less than
<= Relational Less than or equal to
> Relational Greater than
>= Relational Greater than or equal to
= Relational Equal to
== Relational Equal to
<> Relational Not equal to
!= Relational Not equal to
IN Logical In
AND Logical And
OR Logical Or
LIKE Relational
not like的使用
SELECT id, name FROM foods
WHERE name like '%ac%P%' AND name NOT LIKE '%Sch%'
下面的命令返回food_types 表中id 排第2 的记录:
SELECT * FROM food_types LIMIT 1 OFFSET 1 ORDER BY id;
保留字OFFSET 在结果集中跳过一行(Bakery),保留字LIMIT 限制最多返回一行(Cereal)。
group by的使用
SELECT type_id FROM foods GROUP BY type_id;
去重复
SELECT DISTINCT type_id FROM foods;
多表
SELECT foods.name, food_types.name
FROM foods, food_types
WHERE foods.type_id=food_types.id LIMIT 10;
别名
当把多个表连接在一起时,字段可能重名。
SELECT B.name FROM A JOIN B USING (a);
清洁数据库
SQLite 有两个命令用于数据库清洁——REINDEX 和VACUUM。REINDEX 用于重建索引,
有两种形式:
REINDEX collation_name;
REINDEX table_name|index_name;
第一种形式利用给定的排序法名称重新建立所有的索引。
VACUUM 通过重建数据库文件来清除数据库内所有的未用空间。
posted @ 2011-07-25 15:05 过错 阅读(136) 评论(0)
编辑
摘要: 一 有三个箱子a b c,只有一个里面有礼物。现在假设你选了b。这个时候打开a箱子,发现是空的。之后如果你还选b箱子。你得到礼物的几率是多少?二 某人甲买彩票,10选1彩票发行了n次,甲买了同一个号码(7)n次,每期只买一注,但是都没中。当第n+1次开奖的时候,甲又买了同样的号码(7)。这次他中奖的几率是多少? 如果这个时候有一个人乙从来没买过彩票,这次也来买了彩票也选的(7),乙的中奖几率是多少?
阅读全文
posted @ 2011-02-01 13:44 过错 阅读(76) 评论(2)
编辑
摘要: 问题: iis有虚拟目录,指向Linux系统的目录, 在网站程序中要对完成对该虚拟目录的读写。解决方法:1 在网站的根目录下的webconfig 的<system.web>节下 加入如下配置 <identity impersonate="true" userName="sybase" password="cv3388vs3k" /> true表示是否进行身份模拟 username为登录linux时代用户名 password为登录Linux的密码(此处为设置对目录的写设置权限时的用户名和密码)2 重新配置虚拟目录
阅读全文
posted @ 2010-11-17 14:01 过错 阅读(71) 评论(0)
编辑
摘要: using System.Data.Linq.SqlClient;string[] seatnos =new string[]{"mike","john"};SqlMethods.Like( c.VoiceName, "%" + txt_VoiceName.Text + "%" ) && ( seatnos.Contains( c.Operator ) ) orderby c.OperateTime descending, c.VoiceState ascending
阅读全文
posted @ 2010-04-01 13:17 过错 阅读(0) 评论(0)
编辑
摘要: from:http://javasky.172baby.com/posts/123613.htmlASp.NET 2.0中Page事件的执行顺序Page 执行中将按照如下顺序激活事件:Page.PreInitPage.InitPage.InitComplitePage.PreLoadPage.LoadPage.LoadCompletePage.PreRenderPage.PreRenderComplete如果页面从令一个页面继承,如BasePage:System.Web.UI.Page,在BasePage中做了一些扩展,如权限检查,而其他页面从BasePage继承,则BasePage和最终Pa
阅读全文
posted @ 2010-03-19 09:22 过错 阅读(3) 评论(0)
编辑
摘要: 主要使用姜敏的介绍的方法 http://www.cnblogs.com/levinlee/archive/2010/03/18/1688580.html版本1DELETE FROM TB_Test WHERE ID NOT IN (SELECT MIN(ID ) AS MinID FROM dbo.TB_Test AS tt GROUP BY CustomInfo)但前提是这个ID要设计之初存在没有也没关系,可以手动加上。用完再删除。方法2 版本二:充分利用SQL05的几个比较实用的特性。这里先简单说说要用到的几个特性。详细用法可到网上搜索下。 1:ROW_NUMBER,它的作用就是用来生成.
阅读全文
posted @ 2010-03-19 09:19 过错 阅读(4) 评论(0)
编辑