2013年7月3日 星期三

[C#]鎖定Form視窗大小

最近老人痴呆越來越嚴重,老是忘記一些屬性的設定在哪裡,
所以趕快新增上來以免常常忘記還要Google。

在Form的屬性裡將FormBorderStyle設定為FixedSingle就可以啦!
就是這麼簡單~喵!

2013年6月26日 星期三

[C#]啟用Windows服務

ServiceController sc = new ServiceController();
private void StartService(string s)
{
    try
    {
        sc.ServiceName = s;
        /// if service is stopped, start it
        if (sc.Status == ServiceControllerStatus.Stopped)
        {
            //啟動類型設為自動(手動、自動、已停用)
            //如果啟動類型為已停用會導致無法啟用該服務
            Process.Start("sc", "config Messenger start= auto");
            
            //因為服務的啟動類型更改會需要一點時間
            //所以我先在程式中放置一個Timer設定為5000毫秒
            timer1.Start();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception : ", e.Message);
    }
}

private void timer1_Tick(object sender, EventArgs e)
{
    //服務狀態設為啟用
    sc.Start();
    sc.WaitForStatus(ServiceControllerStatus.Running);
    timer1.Stop();
}

2013年6月4日 星期二

[食譜]麻油杏鮑菇湯

【食材】
杏鮑菇
5根
松阪豬
1片
鮮香菇
3朵
枸杞
1小碗
老薑
1塊
米酒
1小碗
黑麻油
少許


【做法】
1.將杏鮑菇以滾刀切塊,松阪豬切片,鮮香菇切片,枸杞泡米酒,老薑切片,以上材料備用
2.先將杏鮑菇乾煎後起鍋,倒入麻油並加入薑片爆香
3.放入杏鮑菇及鮮香菇一同拌炒,再放進松阪豬炒香,嗆入米酒
4.加入適量的水煮至入味,最後加點枸杞提味,即可裝飾盛盤

這是阿母從型男大主廚學的,有稍稍經過改良但差異不大,
有時候不一定有麻油,我就會先利用豬肉的油,不需另外加油一樣好吃,
另外,我最喜歡再加入高麗菜,湯頭會更有甜味哦!

2013年4月17日 星期三

[食譜]黃金高纖地瓜餅乾

自從離開上一家公司之後就很少做餅乾了!
這陣子對於烤餅乾的欲望實在是很強烈,
所以先上網找找是不是有適合我做的簡單餅乾食譜,
看到這個地瓜餅乾,一整個就覺得超適合我,
地瓜根本就是我的愛,而且困難度又不會太高,
所以我就趕快記下來,改天想試做看看,
食譜內容如下:

【材料】(約可做25片)
地瓜120g 無鹽奶油55g
糖粉55g 蛋黃一個
中筋麵粉150g 杏仁角適量

【作法】
1.地瓜洗淨去皮切厚片,蒸熟後趁熱壓成泥,放涼備用
2.將溫軟化後的奶油加入糖粉,以打蛋器打發,再加入蛋黃拌勻
3.放入地瓜泥,改用刮刀將之一起攪拌均勻,續再加入過篩後的中筋麵粉拌勻
4.最後再加州杏仁角,均勻揉入地瓜麵糰中
5.以桿麵棍將地瓜麵糰擀成一大片,用保鮮膜包起來放入冰箱冷藏30分鐘
6.取出地瓜麵糰,將之擀成0.5公分厚的片狀,用餅乾模型或依個人喜好塑形餅乾
7.烤盤底部鋪上烘培紙,放入預熱好的烤箱,以180度烤15分鐘後,翻面再烤10分鐘就完成囉

P.S.
1.地瓜要趁熱壓成泥,冷了就比較難做
2.攪拌地瓜麵糰至均勻就好,若揉至出筋的話烤出來的餅乾就沒那麼脆囉
3.冷藏不僅能鬆弛麵糰,也會使整形餅乾的時候輕易許多
4.烤到中途翻面是為了使上色更均勻
5.喜歡酥脆口感的話可以再烤久一點,原則在於低溫慢烤
6.可以用鬆餅粉取代,但聽說這樣烤出來奶香味會濃厚到有點蓋過天然的地瓜香

[食譜]全麥巧克力/杏仁可可小西餅

這是我第一個學做的餅乾,那時候我那廚藝很讚的室友教我的,
學會之後有次過年我做了一大盒(2份)回家讓我阿母請客人吃,
吃過的都說料好又實在,不會像外面賣的杏仁片少得可憐,
自己做的又乾淨又無添加防腐劑,讚!

【材料】
低筋麵粉 190g 鹽巴 少許
無糖可可粉 10g 雞蛋 1個
bp 1/4t 杏仁片 80g
奶油 100g 香草粉 1/2t(可略)
細砂糖 60~70g


【作法】約可做50片

1. 奶油室溫軟化、雞蛋室溫退冰、粉類過篩、杏仁片烤香備用
2. 將奶油加入砂糖打發至體積膨發泛白
3. 加入雞蛋攪打均勻後,拌入杏仁片
4. 將粉類分兩次加入奶油糊中,輕手切拌均勻
5. 麵糰整成柱狀,放入冰箱冷凍鬆弛至少半小時
6. 烤箱預熱約180度(依烤箱溫度斟酌調整),取出麵團切成0.3公分的薄片,取間隔擺置烤盤上
7. 送入烤箱烘烤約20分鐘即可取出放涼,烤的時候烤箱溫度可能會不均勻,所以記得將烤盤換邊,才不會某些地方很快就焦囉!

【P.S.】
這個配方已經是有減糖減奶油了,但我自己做時糖通常會再減少一些些

如果要改成全麥巧克力口味就將低筋麵粉減少40g,由50g的全麥麵粉取代,
杏仁片則由約100g的苦甜巧克力豆取代即可

2013年4月4日 星期四

[C#]字串/數字補0

1. 字串補0
string str="AAA";
str.PadLeft(8, '0'); //左邊補0,結果:00000AAA
str.PadRight(8, '0'); //右邊補0,結果:AAA00000
如果要補上其他字元就將'0'改為欲補上的字元即可

2.數字補0
string str = string.Format("{0:00000000}",123); //結果: 00000123
string.Format可以使用許多格式,無論是小數點位數還是貨幣格式…等

[食譜]花生醬餅乾

【材料】
花生醬 一杯(約240ml)
糖 1/4杯~1/2杯(可依個人口味斟酌)
蛋 一顆

【作法】
1. 將花生醬、糖與雞蛋攪拌均勻
2. 分小份放在烘焙紙上將它壓平
3. 以約160℃的溫度烤約15分鐘即可

我試做時因為花生醬本身就有甜,再加上我個人不嗜甜所以沒有加糖,
完成之後吃起來的感覺還蠻像貢糖的(這根本就是偽工糖嘛!),
並不像餅乾會有硬脆的口感,反而是鬆鬆軟軟的感覺,
雖然吃起來花生味非常的香,也不會覺得有花生醬的油膩感,
但我個人並不偏愛,畢竟它的材料幾乎是全花生醬,吃起來會超有罪惡感,
就連我男朋友吃著也說很香,但就是不敢吃太多塊,
這次會將它做成餅乾主要是為了消耗我冰在冰箱裡的花生醬,
做完之後就開始分送給大家吃了,哈哈哈~~
這個配方我就將它收藏起來啦!搞不好以後還用得到~

2013年3月8日 星期五

[C#]DataTable寫入/讀取XML

最近剛開始接觸到XML,雖然知道這個東西已經很久很久了,
但是一直都沒有試著去使用它,現在需要使用到卻遇到很多瓶頸,
因為我實在跟它不熟,後來Google之後發現DataTable可以直接存成XML檔,
這對我來說省去不少麻煩,特別把它給記下來,用法如下:

1. DataTable寫入為XML
DataTable dataTable = new DataTable("tableName"); //注意table一定需要有tablename
new SqlDataAdapter(selectCommand).Fill(dataTable);
dataTable.WriteXml("C:\\xmlName.xml");

假設產生出來的XML檔案如下:


 
 http://www.google.com.tw
 Google
 
 
 http://tw.yahoo.com
 Yahoo!
 



2. 讀取XML至DataTable
用以下方式讀取會出現「DataTable 不支援來自 Xml 的結構描述介面」的錯誤
DataTable dt = new DataTable();
dt.ReadXml("C:\\xmlName.xml");

以下方法則不會出現錯誤
DataTable dt = new DataTable("website");
//記得要給table名稱
dt.Columns.Add("url");
dt.Columns.Add("title");
dt.ReadXml("C:\\xmlName.xml");

2013年2月17日 星期日

[C#] 移除字串中非數字的字元

using System.Text.RegularExpressions;


string anyString = Regex.Replace(strIn, "[^0-9]", "");

2013年2月4日 星期一

[C#]偵測並關閉執行中的程式



using System.Diagnostics;
...
...
//=====不可重複開啟同一支程式(將程式碼放至於偵測是否被開啟的程式中即可)=====
Process[] proc = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
if (proc.Length > 1)
{
    //表示此程式已被開啟
    MessageBox.Show("程式執行中");
}

//=====偵測執行中的外部程式並關閉=====
Process[] MyProcess = Process.GetProcessesByName("程式名稱");
if (MyProcess.Length>0)
    MyProcess[0].Kill(); //關閉執行中的程式

2013年1月31日 星期四

[C#]數值驗證 IsNumeric


VB裡常常使用IsNumeric這個函式,在C#中卻沒得用感覺很不方便,
所以只能自定義一個函式來使用了!

//判斷數值格式並且符合大於等於0小於等於59(判斷分鐘用)
static bool IsNumeric(object Expression)
{
    bool isNum;
    double retNum;
    isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
    if (!isNum)
        return false;
    else
    {
        if ((retNum >= 0) && (retNum <= 59))
            return true;
        else
            return false;
    }
}

[C#]Crystal Report自動調大亂斷行

最近開始使用Crystal Report真的是問題多多,
其中一個考倒我也考倒同事的就是它會亂斷行,
只要內容同時包含半形字又有全形字的時候就會出現這樣的狀況,
無論我怎麼設定都沒辦法解決,只能靠Google大神了!
找了很久,總算讓我挖到一篇,它是用程式讓內容自動斷行的,
大家可以參考一下:
http://www.dotblogs.com.tw/tf30412/archive/2010/05/20/15348.aspx

只要把它加入你的程式碼,要用的時候再加入即可
/// <summary>文字斷行設定,以Byte計算</summary>
/// <param name="orignstr">字串</param>
/// <param name="length">單行文字長度</param>
/// <param name="mark">換行符號</param>
public static string ReportBreakLine(string orignstr, int length, string mark)
{
    string result = string.Empty;
    List<int> all_i = new List<int>(); //用來裝每個字的BYTES,再用迴圈去加總
    char[] all_s = orignstr.Trim().ToCharArray();
    for (int i = 0; i < all_s.Length; i++)
    {
        all_i.Add(System.Text.Encoding.Default.GetByteCount(all_s[i].ToString()));
    }

    int now_t = 0;
    int end = 0;
    int now = 0;
    //若需求是40個字即為80Bytes,若加總為79Bytes時就停止。
    for (int i = 0; i < all_i.Count; i++)
    {
        if (i + 1 != all_i.Count)
        {
            if ((now_t + all_i[i]) <= length)
            {
                now_t += all_i[i];
                end = i;
            }
            else
            {
                result += orignstr.Substring(now, end - now + 1) + mark;
                now = i;
                i--;
                now_t = 0;
            }
        }
        else
        {
            now_t += all_i[i];

            if (now_t > length)
            {
                result += orignstr.Substring(now, all_i.Count - now - 1) + mark;
                result += orignstr.Substring(i, 1);
            }
            else
            {
                result += orignstr.Substring(now, all_i.Count - now);
            }
        }
    }
    return result;
}

2013年1月24日 星期四

[C#]DataGridView綁定DataTable不顯示所有DataTable欄位

是否自動建立資料來源中每個欄位的繫結欄位

當DataGridView.DataSource的來源是由DataTable來時,
一般狀況它會自動將DataTable裡的所有欄位自動建立至DataGridView中,
但是如果只想要顯示一部份DataTable裡的欄位時該怎麼辦呢?

只要設定以下屬性即可:
GridView.AutoGenerateColumns = false;

[C#]Crystal Report列印(Print crystal report)

1.直接列印不預覽(Direct printing of crystal report)

CrystalReport1 document = new CrystalReport1(); //CrystalReport1:crystal report name

document.SetDataSource(data); //data:DataSet or DataTable

document.PrintToPrinter(1.true,0,0); //Print report directly

備註:
ReportDocument.PrintToPrinter方法參數說明:
PrintToPrinter(nCopies, collated, startPageN, endPageN);
nCopies:指出列印份數。
collated:指出是否自動分頁。
startPageN:指出要列印的第一頁。
endPageN:指出要列印的最後一頁。

2.Crystal report預覽(Preview crystal report)
Print preRpt = new Print();
//Print:the form name have crystalReportViewer

preRpt.CrystalReport11.SetDataSource(DS);
//CrystalReport11:report source in crystalReportViewer

preRpt.ShowDialog();
preRpt.Dispose();

2013年1月17日 星期四

[C#]命令列參數 (Command Line Arguments)


1.取得參數
string[] args = Environment.GetCommandLineArgs();
for (int i = 0; i < args.Length; i++)
{
    MessageBox.Show(args[i]);
}
2.呼叫時帶入參數
Process explorer = new Process();
explorer.StartInfo.FileName = @"C:\Program Files\Internet Explorer\iexplore.exe";
//額外的參數;這邊給的是網址
explorer.StartInfo.Arguments = "http://yahoo.com.tw";
explorer.Start();

2013年1月14日 星期一

[VB6]VB6 集合--不定期更新

函式
1. MkDir(ByVal Path As String):建立新目錄
2. Shell "Explorer.exe 資料夾路徑", vbNormalFocus:開啟資料夾



App物件的使用
1. 防止程式多次執行
Private Sub Form_Initialize()
    If App.PrevInstance Then End
End Sub

2. 取得版本
Dim Version As String
Version = App.Major & "." & App.Minor & "." & App.Revision
註:如果不想手動更改版本的話,可直接將「自動新增」的選項勾選,那麼在每次製成exe檔時它就會幫你自動變更版本囉!















變數型態
1.Integer:只要超過32767就溢位了,最近Debug才發現到原來Integer只要超過32767就會overflow。

[C#] TXT檔案讀寫


寫入檔案>>
using System.IO;


StreamWriter sw = new StreamWriter(@"C:\text.txt", true);
//第二個參數設定為true表示不覆蓋原本的內容,把新內容直接添加進去
sw.WriteLine("寫入TXT的文字");
sw.Close();


讀取檔案>>
using System.IO;



StreamReader sr = new StreamReader(@"C:\text.txt");

//===一次讀取全部內容===
string a = sr.ReadToEnd();
Debug.Print(a);


//===逐行讀取,直到檔尾===
while (!sr.EndOfStream)
{
    Debug.Print(sr.ReadLine());
}

sr.Close();

[食譜]蕃茄肉燥/蕃茄肉醬

最近有點懶,一個人吃飯不想每餐都煮那麼多樣,
所以想來想去決定煮一些蕃茄肉醬冰起來,
無論是拌飯或拌麵都很好吃,加在義大利麵條裡就變義大利肉醬麵了!

【材料】
蕃茄........3顆    洋蔥.....半顆
豬絞肉.....約半斤    蒜頭.....約4瓣
薑............少許    米酒.....一匙
醬油膏.....依口味    鹽巴.....少許

【作法】
1. 先蕃茄劃十字放入熱水煮至皮變皺即可撈起去皮
2. 蕃茄切塊(切丁也可),洋蔥切丁,蒜頭及薑切成末備用
3. 將豬絞肉加入蒜末、薑末、米酒及鹽巴抓勻稍微醃一下即可
4. 熱鍋後將醃過的豬絞肉放入炒至七分熟(豬肉本身有油脂,所以不必再放油) 放至碗裡備用
5. 接著利用鍋裡炒豬肉殘留的油加入洋蔥、蕃茄稍微炒過後加一小杯水煮至軟化再放入炒過的豬絞肉
6. 最後依個人口味加入些許醬油膏(我個人偏愛油膏,較不死鹹)、鹽以及大約半碗的水後滷至蕃茄及洋蔥軟爛即完成囉!

我自己不喜歡吃太油,所以都是利用豬絞肉本身的油脂料理,
醬油膏及鹽也只加少許,因為蕃茄味帶點酸,所以我覺得稍有鹹味即可,
蕃茄的部份若是不怕麻煩的人,我個人是建議使用新鮮蕃茄,不要用罐頭,
洋蔥及蕃茄都會出水,所以水可以分次加入,
其實調味的部份都可依個人的口味去斟酌增減。

另外,做完後可將它分裝放至冷凍可保存較久時間,
要吃的時候再自冷凍取出加熱即可,
但最好還是盡快吃完,不要冰太久哦!

2013年1月13日 星期日

[食譜]蛋酥


上次吃了福X軒的蛋酥後覺得很好吃,
於是興起了想自己動手做做看的念頭,
上網找到了這個食譜,但是還沒時間動手做,
有興趣的人可以試試看。

【材料】
有塩奶油  80克    糖粉       60克
蛋黃    2個      低麵       90克
玉米粉      30克    奶粉       20克
泡打粉      1t

【做法】
1. 奶油與糖混合後打發
2. 加入蛋黃並且攪拌均勻
3. 加入剩餘材料拌勻
4. 搓成小圓後置入烤盤,並以200-130烤約6~8分鐘

[食譜]糖心蛋、溏心蛋、黃金蛋


這是我很愛的一道雞蛋料理,雖然簡單卻很美味,
是我跟同事偷學來的,真的很好吃,
喜歡嘗試的人還可以試試加些其他東西哦!

材料:

雞蛋   8~10個   醬油   2T
味醂   2T       開水   6T


作法:

1. 雞蛋先退冰至,調味料混合備用
2. 清水加鹽巴燒開,水量蓋過雞蛋即可
3. 水滾後關中小火,將雞蛋放入邊攪拌邊煮,時間視雞蛋大小及爐火約為5~7分鐘
4. 雞蛋撈起泡冷水,放涼後小心的剝除蛋殼
5. 放入準備好的調味料中,冰至冰箱,浸泡約兩天即可食用

小秘訣:

雞蛋放入熱水後,一定要不停攪拌,這樣蛋黃才會停在正中央

醬料(醬油、味醂、開水)的比例原則上是1:1:3
不過實際比例要依不同醬油廠牌或個人口味喜好調整!