2013年6月18日 星期二

WinForm 與 log4net

1. 程式要呼叫 「log4net.Config.BasicConfigurator.Configure();」
如下:

static class Program
    {
        private static readonly log4net.ILog log =            
              LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        /// <summary>
        /// 應用程式的主要進入點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            //初始化log4net
            log4net.Config.BasicConfigurator.Configure();

            //
            log.Debug("Test");

        }
    }


2. AssemblyInfo要加[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
如下:
// Log4Net Configuration.
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

3.確認 log4net.config內容及檔案存。

2013年5月20日 星期一

網頁定時(排程)寄出郵件

面對某些需求,會需要寫出能「定時寄出信件」的功能,或定時作什麼。

網路上找到可行的作法,但嚴謹度可能不足,以下整理:

作法: 將功能寫於某頁面之下,再設定windows排程,定時執行指定之bat,bat檔中寫好開啟該網頁之指令。

重點:
1.為避免被任意執行,可以自訂密碼,透過網頁參數傳遞。如:SendMail.aspx?pwd=test123

2.bat檔內容如下:

cd C:\Program Files\Internet Explorer\
iexplore "http://www.google.com.tw/"

3.頁面需加上javascrip,執行完畢後自動關閉,否則頁面會一直一直開啟。


參考網站:http://bloginsect.blogspot.tw/2009/06/windows.html

2012年8月8日 星期三

LINQ 動態組條件式


範例:如果a0,就不要作條件式sch.filed1 == b
var systemA = from sch in db.dbname
                          let isAppendWhere = (a == "0")
                          where sch.sys_lockmark.ToString().Trim() == "00"
                         && (isAppendWhere? true : sch.filed1 == b)
                          select sch;



l   let isAppendWhere= (a == "0")
說明:要給isSearchAll一個布林值

l   (isAppendWhere? true : sch.filed1 == b)
這是if的簡短式,(條件? true作的事” : false作的事”)
所以如果isAppendWheretrue,就作true(等於沒條件)
反之若如果isAppendWherefalse,就作sch.filed1 == b 條件式

2012年6月10日 星期日

WPF 設定Install project 的部屬專案屬性


WPF 設定Install project 的部屬專案屬性,指定專案的製造商名稱(Manufacturer Name)

小妹我實在找了很久,終於發現必須在方案總管的頁籤中點選install project ,再直接切換到屬性頁籤,就可以看到設定Manufacturer Name的地方囉!



2012年1月29日 星期日

透過程式動態產生WebUserControl物件

  1. 先建立自訂的WebUserControl -- SingleQues.ascx
  2. 建立:
    ASP.singleques sq = ( ASP.singleques )LoadControl("~/Controls/SingleQues.ascx");  

需注意,SingleQues.ascx要先編譯成功無語法錯誤後,在要動態產生WebUserControl的aspx頁面中,需在前面加上<%@ Register TagName=" SingleQues " TagPrefix="MyWUC" Src="~/Controls/ SingleQues.ascx " %>。

2011年10月6日 星期四

WPF 設定應用程式icon

視窗的圖示:


<Window Icon="/PostManager;component/images/barcode.ico" />

安裝後,程式集上面的圖示:

至專案「properties」中,應用程式分頁中「資源」作設定。

2011年9月22日 星期四

如何讓expander展開後,Focus子項目

如何讓expander展開後,就Focus在子項目


說明:若將textbox1.Focus()直接寫在expander的expanded裡會回傳false,因為在展開時,該textbox1並未看的見,故無法focus();


作法:
1.建立一個boolean值,控制是否要focus。如beFocus = false;
2.於expander的Expanded事件中,將beFocus設為true;
3.於要被Focus的子項目之IsVisibleChanged事件中,撰寫若visible = true 則focus 自己,並將beFocus改回false。

Example

private bool beFocus = false;


 private void expander1_Expanded(object sender, RoutedEventArgs e)
 {
       beFocus = true;
}

private void textbox1_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
     if (((bool)e.NewValue == true) && beFocus) {
           textbox1_.Focus();
           beFocus = false;
     }
}