Wednesday, July 23, 2014

[C#] abstract 和 virtual 函數的差異

MVA Twenty C# Questions Explained - [09 ​What is the difference between abstract and virtual functions?]

整理影片中說明重點
  • abstract method 不會有程式內容
namespace MVATwentyQuestions
{
    abstract class absClass
    {
        public abstract void DisplayValue(string value)
        {
            // DoSomething
        }
    }
}
[C#] abstract 和 virtual 函數的差異-1

Tuesday, July 22, 2014

[C#] 根據 CheckBox 來顯示 DataGridView 欄位

論壇問題:使用者要根據 CheckBox 的 TabIndex 來控制 DataGridView 欄位是否顯示

下圖為控件 TabIndex 的顯示圖,請 CheckBox 依序從 1 排到 5

[C#] 根據 CheckBox 來顯示 DataGridView 欄位-1

Monday, July 21, 2014

[VS] 檔案名稱中的星號

從下圖中可以看見檔案 Tab 中的檔案名稱,名稱後面有一個星號(圖中的紅框),此星號代表該檔案有經過編輯,但目前未儲存,一旦儲存後,星號就會消失 ~~

[VS] 檔案名稱中的星號

Friday, July 18, 2014

[Word] 表格內的加總國字金額

今天被問到,Word 表格內的金額加總,可不可以用國字金額來表示,試了一下發現,Word 上似乎沒有現成功能,讓使用者按一按就可以達成這個目的

先建立一個建議 Table 和資料來測試一下
  1. 滑鼠指標放在要設計為加總的資料欄位上
  2. 表格工具內的板面配置 Tab
  3. 點選公式功能
[Office] Word 表格的加總國字金額-1

Word 本身提供的功能在數字格式內並沒有轉成國字金額的選項,都是數字金額的格式

[Office] Word 表格的加總國字金額-3

利用錄製巨集去觀察"Word 數字功能",是如何把數字金額變成國字,發現是下 "\* CHINESENUM2" 來轉國字金額,在公式內的後方下此參數,果然就可以做到啦

[Office] Word 表格的加總國字金額-2

當再次進入公式畫面,並不會顯示該參數存在,如下圖

[Office] Word 表格的加總國字金額-4

該方法仍然無法避免 Word 內轉國字金額有一百萬限制,建議利用 Excel 搭配 Word,利用連接表格功能複製表格到 Word 內呈現,不但可以避開一百萬限制,萬一項目金額有所變化,在 Excel 內修改,加總會自動變化且反應到 Word 表格內,會是一個比較有效率的做法 ~~

Office 版本為 2013

Thursday, July 17, 2014

[C#] 關閉全部的 Form

論壇問題,原本問題是要根據輸入的數值來決定關閉多少已開啟的 Form,換句話說來練習一下,關閉全部已開啟的 Form

OpenForms 作法
namespace CloseAllForm
{
    public partial class OpenForms : Form
    {
        public OpenForms()
        {
            InitializeComponent();
        }

        private void btnOpen_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 5; i++)
            {

                FormShow demo = new FormShow();

                int x = 10 * i;
                int y = 20 * i;
                demo.Location = new Point(x, y);

                string FormInfo = string.Format("Form{0}", i);
                demo.Text = FormInfo;
                demo.Name = FormInfo;

                demo.Show();
            }
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            List<Form> FormClose = Application.OpenForms.OfType<Form>().ToList();
            foreach (Form item in FormClose)
            {
                if (Form.ActiveForm == item) continue;
                item.Close();
            }
        }
    }
}