Monday, May 22, 2017

[Win10] 大易輸入法

幫某單位更換 PC 時,突然被問到要如何在 Win10 上加入大易輸入法,當場當機找不到去哪裡設定,Orz

控制台 => 時鐘、語言和區域 => 語言

[Win10] 大易輸入法-1

語言 => 輸入法 => 新增輸入法

[Win10] 大易輸入法-2

選項內就可以看見大易輸入法啦

[Win10] 大易輸入法-3

筆記一下

Friday, May 19, 2017

[VSTS] git stash 衝突

有個小需求插單,直接下 git stash -u 暫存後,就在該 branch 上趕快完成插單需求,完成後下 git stash pop 把暫存叫回來,然後該 Project 就無法載入,Orz

[VSTS] git stash 衝突-20


Wednesday, May 17, 2017

[Skype] 找不到 MSVCP140.dll 檔案

在商用 PC 上不透過還原光碟,直接用 MS Win10 安裝檔案灌系統,Skype V7.36安裝完後,會出現下面的錯誤訊息

[Skype] 找不到 MSVCP140.dll 檔案-1

[Skype] 找不到 MSVCP140.dll 檔案-2

了解後,發現是沒有安裝 Visual C++ 2015,下載並安裝 32bit 版本,Skype V7.36 就可以正常執行,用還原光碟是一堆有的沒有的,用原廠檔案安裝是甚麼都沒有,XD

Wednesday, May 10, 2017

[C#] DataGridView - 指定欄位進行排序

這篇 MSDN 文章 - 如何:自訂 Windows Form DataGridView 控制項的排序 的第一個範例:程式設計排序,基本上是把 DataGridViewColumn.SortMode = DataGridViewColumnSortMode.Automatic 自動排序,變成寫 Code 指定排序,範例是把排序功能寫在 BtnSort 內執行,故意把 Code 寫在 DataGridView.ColumnHeaderMouseClick Event 上,操作上會比較直覺

MSDN 說明
使用的資料行 SortMode 屬性設定為 DataGridViewColumnSortMode.Automatic, 、 SortedColumn 和 SortOrder 屬性會自動設定,並顯示適當的排序圖像。 使用的資料行 SortMode 屬性設定為 DataGridViewColumnSortMode.Programmatic, ,您必須顯示排序圖像自行透過 DataGridViewColumnHeaderCell.SortGlyphDirection 屬性。

Thursday, May 04, 2017

[C#] DataGridView 控件屬性設定

延續這篇 [C#] DataGridView.ReadOnly,DataGridView.ReadOnly 從 true 變成 false 之後,全部的 DataGridViewColumn.ReadOnly 都會變成 false,那 Form 一執行時就要記錄 DataGridViewColumn.ReadOnly 的設定,這樣就可以還原 ReadOnly 狀態,沒想到事情沒這麼單純

拉一個 DataGridView 並手動產生兩個 DataGridViewTextBoxColumn,基本上 Layout 只是觀察 Designer.cs 用,沒甚麼作用

[C#] DataGridView 控件屬性設定-1

理論上 WinForm 啟動時,加入 DataGridViewTextBoxColumn 時會觸發 DataGridView.ColumnAdded 事件,所以只要在 ColumnAdded 內紀錄下來就行,想像如下面的 Code
namespace dgvDesigner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        StringBuilder sb = new StringBuilder();
        private void Form1_Load(object sender, EventArgs e)
        {
            dataGridView1.ColumnAdded += DataGridView1_ColumnAdded;
            sb.Clear();
            dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { Name = "Col1", ReadOnly = false });
            dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { Name = "Col2", ReadOnly = true });
            MessageBox.Show(sb.ToString(),"執行階段新增 DataGridVeiwTextboxColumn");
        }

        private void DataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
        {
            sb.AppendLine($"Name:{e.Column.Name} - ReadOnly:{e.Column.ReadOnly}");
        }
   }
}
[C#] DataGridView 控件屬性設定-2

但事情總是沒有這麼美好,自訂的 DataGridView 控件,一直沒有辦法記錄到 DataGridViewColumn.ReadOnly,利用中斷點才發現,為什麼是 DataGridViewTextColumn 加進 DataGridView.Columns 後才設定 DataGridViewTextColumn 的相關屬性設定,ColumnsAdded 完全派不上用場,Orz

[C#] DataGridView 控件屬性設定-3

嘗試把 DataGridViewColumn 屬性設定,手動搬移到 DataGridView.Columns.AddRange() 前,Columns.Added 就抓的到 ReadOnly,不過當在設計階段有動到 DataGridViewColumn 設定值,又回復到上圖的順序,而且 Designer.cs 還是不要去亂動比較好,>.<

以前看 Designer.cs 都沒有特別感覺,這次剛好注意到這個點,記錄一下