星期二, 6月 09, 2015

[SSMS] 視窗捲軸

論壇問題,為甚麼 SSMS 水平捲軸消失,如下圖

[SQL] SSMS 視窗捲軸-2

SSMS => 工具 => 選項 => 文字編輯器 => 顯示 => 勾選 "水平捲軸" 就行啦

[SQL] SSMS 視窗捲軸-3

如下圖

[SQL] SSMS 視窗捲軸-1

星期五, 6月 05, 2015

[C#] 繪圖 - 九宮格

看到有人詢問畫二維矩陣問題,想說畫個九宮格來練習繪圖相關的基礎語法
namespace WindowsFormsApplication1
{
    public partial class frmGraphics : Form
    {
        public frmGraphics()
        {
            InitializeComponent();
        }

        private void frmGraphics_Paint(object sender, PaintEventArgs e)
        {
            DataTable dt = new DataTable("Demo");
            dt.Columns.Add("Col1", typeof(int));
            dt.Columns.Add("Col2", typeof(int));
            dt.Columns.Add("Col3", typeof(int));
            dt.Rows.Add(1, 2, 3);
            dt.Rows.Add(4, 5, 6);
            dt.Rows.Add(7, 8, 9);

            int 
                MarginX = 10 ,
                MarginY = 10 ,
                RecX = 0 , 
                RecY = 0 , 
                RecWidth = 100 , 
                RecHeigh = 100 ;

            // 字在 Rec 中心
            int
                StrMarginX = RecWidth / 2,
                StrMarginY = RecHeigh / 2,
                StrX = RecWidth / 2 ,
                StrY = RecHeigh / 2;

            string data = string.Empty;

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                RecX = MarginX + (RecWidth * i);
                StrX = StrMarginX + (RecWidth * i);

                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    RecY = MarginY + (RecHeigh * j);
                    StrY = StrMarginY + (RecHeigh * j);
                    data = dt.Rows[j][i].ToString();

                    // 畫方格
                    Rectangle Rec = new Rectangle(RecX, RecY, RecWidth, RecHeigh);
                    Pen p = new Pen(Color.Black, 2);
                    e.Graphics.DrawRectangle(p, Rec);
     
                    // 填字
                    Font F = new Font("新細明體", 20, FontStyle.Bold);
                    e.Graphics.DrawString(data, F, Brushes.Blue, new PointF(StrX, StrY));
                }
            }
        }
    }
}
繪圖要畫的好,還真的有難度,發現很多問題,Orz

星期四, 6月 04, 2015

[C#] 在 Paint 事件內繪圖

最近閱讀一些繪圖相關的論壇討論,大神都建議要在 Paint 事件內進行繪圖動作,測試了解為甚麼
namespace WindowsFormsApplication1
{
    public partial class frmWhyPaint : Form
    {
        public frmWhyPaint()
        {
            InitializeComponent();
        }

        private void btnCreatePie_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            g.FillPie(Brushes.Blue, 300, 100, 100, 100, 0, 360); 
        }

        private void frmWhyPaint_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.FillPie(Brushes.Red, 100, 100, 100, 100, 0, 360);
        }
    }
}

開始程式後利用 Button 產生右邊的藍圓


把視窗最小化後,再放大,利用 Button 建立的藍圓,消失了


拉視窗下緣,把兩個圓切一半


再把視窗還原,發現到 Button 產生的藍圓,只剩下一半囉