日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

C#使用Panel實(shí)現(xiàn)窗體動態(tài)側(cè)邊欄_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:減少.NET應(yīng)用程序內(nèi)存占用的一則實(shí)踐
最近一周比較忙,主要的工作內(nèi)容是在做一個(gè)叫鍵盤精靈的東西,簡單來講就是將很多數(shù)據(jù)放到內(nèi)存中,對這些數(shù)據(jù)進(jìn)行快速檢索,然后找出根據(jù)輸入條件最匹配的10條記錄并予以展示。具體和下面兩款炒股軟件的相關(guān)功能類似: 數(shù)據(jù)以文本形式存在文件中,且數(shù)據(jù)量較大,有近20

可以實(shí)現(xiàn)側(cè)邊欄的展開、隱藏和鎖定的功能。添加的側(cè)邊欄默認(rèn)是不顯示的通過鼠標(biāo)的懸停事件MouseHover來觸發(fā)展開動作。側(cè)邊欄實(shí)際上是一個(gè)窗體或者是容器,實(shí)現(xiàn)展開的動作必須在一個(gè)時(shí)間段內(nèi)逐步的增加寬度,我采用Panel作為容器的載體,在一個(gè)線程中逐步增加Panel的Width屬性。隱藏,主要使用的是Panel的Visible屬性來實(shí)現(xiàn),隱藏條件的判斷是通過判斷鼠標(biāo)位置是不是在側(cè)邊欄的邊界之外來實(shí)現(xiàn)的。鎖定,是使Panel始終處于顯示的狀態(tài),使隱藏Panel的函數(shù)不執(zhí)行來實(shí)現(xiàn)的。
界面

wps_clip_image-11395

相關(guān)代碼:
展開:
private void toolStripButton2_MouseHover(object sender, EventArgs e)
{
//鼠標(biāo)懸停事件,展開
if (!this.panel2.Visible) //panel2為側(cè)邊欄的容器
{
Thread ts = new Thread(new ParameterizedThreadStart(TaskShowPanel));
ts.Is true; //設(shè)置為后臺線程
ts.Priority = ThreadPriority.Normal; //設(shè)置優(yōu)先級
ts.Start((Object)245); //Panel展開寬度245
}
}
//定義的線程執(zhí)行函數(shù)
private void TaskShowPanel(Object ParObject)
{
int w = (int)ParObject;
for (int i = 0; i <= w; i++)
{
ShowPanel(this.panel2, i);
}
}
private delegate void SetTextCallback(Panel p1, int w);
/// <summary>
/// 展開動作
/// </summary>
/// <param name="p1">panel容器</param>
/// <param name="w">寬度</param>
private void ShowPanel(Panel p1,int w)
{
//跨線程訪問
try
{
if (p1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(ShowPanel);
p1.Invoke(d, new Object[] { p1, w });
}
else
{
p1.Width = w;
if (!p1.Visible)
{
p1.Visible = true;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "ShowPanel函數(shù)執(zhí)行錯(cuò)誤");
}
}
隱藏:
private void listView1_MouseMove(object sender, MouseEventArgs e)
{
Point panelPoint = this.PointToClient(Control.MousePosition); //鼠標(biāo)當(dāng)前位置
//this.panel2.Location.X panel2的起始位置
//this.panel2.Width panel2的寬度
if (this.panel2.Visible && (panelPoint.X > (this.panel2.Location.X + this.panel2.Width)))
{
this.panel2.Visible = false;
}
}
鎖定:
private void button1_Click(object sender, EventArgs e)
{
//刪除隱藏事件
this.listView1.MouseMove -= new System.Windows.Forms.MouseEventHandler(this.listView1_MouseMove);
}

分享:進(jìn)程性能計(jì)數(shù)器已禁用的解決辦法
未處理的異常:進(jìn)程性能計(jì)數(shù)器已禁用 調(diào)試出錯(cuò): 未處理的異常: System.InvalidOperationException: 進(jìn)程性能計(jì)數(shù)器已禁用,因此無法執(zhí)行所請求的操作 問題解決: 方法一: 這時(shí)只要修復(fù)一下windows的性能計(jì)數(shù)器即可。 具體方法:在運(yùn)行中輸入:lodctr /r 然后回車,運(yùn)

來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2013-04-17
相關(guān).Net教程