簡單的便簽工具:實現了基於文字的便簽資訊的瀏覽,刪除,新增。可以檢視時間,實時更新資料。
這個便簽工具完全基於物件導向的程式設計方式,首先定義note類,然後使用notemanager類進行便簽的管理。其中的關鍵就是在notemanager類中定義list泛型集合。原理上和arraylist基本是一致的。
notemanager的工作原理:
public listlist;//定義乙個泛型集合,並在建構函式中初始化。
private int currentindex = 0;//指示當前便簽所在位置
public note getcurrentnote; //乙個唯讀屬性,讀取當前索引下的note物件
public bool addnewnote(note note); //方法,想list中新增新的note物件
public int move(int direc, label lbltip); //方法,根據引數是-1還是1,移動currentindex,達到翻頁效果
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.windows.forms;
namespace
簡易便簽
}//新增乙個note
public
bool
addnewnote(note note)
public
notemanager()
//diec只能是-1或者1
//0 1 2 3 4 length=5
//返回當前的currentindex
public
int move(int
direc, label lbltip)
}if (direc == 1
)
}return
currentindex;}}
}而在note.cs類中則定義了便簽的基本屬性:
簡易便簽
public
string title
public
string content
public datetime time
}}窗體檔案:frmaddnewnote.cs
usingsystem;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.linq;
using
system.text;
using
system.windows.forms;
namespace
簡易便簽
private
void btnok_click(object
sender, eventargs e)
);notemanager manager =record.manager;
manager.addnewnote(
new note );
messagebox.show(
"新增成功!");
this
.close();}}
}
窗體檔案:frmmain.cs
usingsystem;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.linq;
using
system.text;
using
system.windows.forms;
using
system.io;
namespace
簡易便簽
private
notemanager manger;
private
string
alllines;
private
void form1_load(object
sender, eventargs e));}
//窗體載入完成之後馬上給值
writecontent();
lblpage.text = "
1/" +manger.list.count;
}private
void btnprev_click(object
sender, eventargs e)
private
void btnnext_click(object
sender, eventargs e)
private
void
writecontent()
private
void
clearalltext()
private
void form1_formclosing(object
sender, formclosingeventargs e)
file.writealllines(
"note.txt
", strarr, encoding.default);
}private
void tsbtnaddnew_click(object
sender, eventargs e)
);//frmaddnewnote fan = new frmaddnewnote();
frmaddnewnote fa = new
frmaddnewnote();
record.manager =manger;
fa.show();
}private
void tsbtnclear_click(object
sender, eventargs e)
private
void tstool_itemclicked(object
sender, toolstripitemclickedeventargs e)
private
void tsbtnupdate_click(object
sender, eventargs e)
);lbltip.text = "
已經更新!";}}
}
這個小案例中有兩點要特別關注:
1.首先是物件導向的思維方式,將每個note便簽都看做乙個物件,物件裡有各種屬性。通過notemanager物件管理note物件。達到了指揮者的效果
2.其次便是窗體之間的傳值,我這裡使用的是構建中介軟體static class record類,進行引用的傳遞
中介軟體:
staticclass
record
使用中介軟體進行資料的共享很方便。
乙個簡易的shell
shell本質上就是將程序程式替換 替換原理 用fork建立子程序後執行的是和父程序相同的程式 但有可能執行不同的 分支 子程序往往要呼叫一種exec函式以執行另乙個程式。當程序呼叫一種exec函式時,該程序的使用者空間 和資料完全被新程式替換,從新程式的啟動例程開始執行。呼叫exec並不建立新程序...
乙個簡易的SocketIM
今天做了乙個簡易的socketim的小示例。基本思想是開啟兩個winform,每個winform既充當伺服器也充當客戶端。乙個監聽8000埠,另外乙個監聽8001埠,兩個winform接收到資訊之後將資訊顯示在form的控制項上。這篇記錄一下碼code中學到的一些東西。net的socket庫已經將c...
C 乙個窗體呼叫另乙個窗體的方法
乙個窗體呼叫另乙個窗體的方法 例如 窗體b要呼叫窗體a中的方法 1 首先在窗體a中將窗體a設為靜態窗體 public static forma m forma 設此窗體為靜態,其他窗體可呼叫此窗體中的方法 2 然後在此窗體a的建構函式中加入 m forma this public forma ini...