2020年7月29日 星期三

判断字符是否为中文

判断字符是否为中文

1、用ASCII码判断

在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,具体代码如下:

代码如下:

string text = "是不是汉字,ABC,柯乐义";
       for (int i = 0; i < text.Length; i++)
       {
            if ((int)text[i] > 127)
                  Console.WriteLine("是汉字");
            else
                  Console.WriteLine("不是汉字");
       }
 

 

2、用汉字的 UNICODE 编码范围判断

汉字的UNICODE编码范围是4e00-9fbb,具体代码如下:

 代码如下:

string text = "是不是汉字,ABC,keleyi.com";
      char[] c = text.ToCharArray();
 

       for (int i = 0; i < c.Length;i++)
       if (c[i] >= 0x4e00 && c[i] <= 0x9fbb)
              Console.WriteLine("是汉字");
       else
              Console.WriteLine("不是汉字");

 

 

3、用正则表达式判断

用正则表达式判断也是用汉字的 UNICODE 编码范围,具体代码如下:

代码如下:

string text = "是不是汉字,ABC,keleyi.com";
        for (int i = 0; i < text.Length; i++)
        {
               if (Regex.IsMatch(text[i].ToString(), @"[\u4e00-\u9fbb]+{1}quot;))
                   Console.WriteLine("是汉字");
               else
                   Console.WriteLine("不是汉字");
        }

winform中如何取得 DataGridView 单元格的屏幕位置

winform中如何取得 DataGridView 单元格的屏幕位置
首先取得DataGridView的坐标位置:
int dgvX = dataGridView1.Location.X;
int dgvY = dataGridView1.Location.Y;
然后取得选中单元格的坐标在DataGridView中的坐标位置:
int cellX = dataGridView1.GetCellDisplayRectangle(ColumnIndex,RowIndex,false).X;
int cellY = dataGridView1.GetCellDisplayRectangle(ColumnIndex,RowIndex,false).Y;
最后可以得到每个单元格相对于form的坐标为:
int x = dgvX + cellX;
int y = dgvY + cellY;

//点击单元格获取单元格位置并显示控件A.png

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex > 4)
            {
                int dgvX = dataGridView1.Location.X;
                int dgvY = dataGridView1.Location.Y;
                int cellX = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).X;
                int cellY = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Y;
                int x = dgvX + cellX;
                int y = dgvY + cellY;
                dateTimePicker1.Location =  new Point(x,y);
                dateTimePicker1.Visible = true;
            }
        }

2020年6月30日 星期二

Web RWD APP 代購系統 #3

換寫到後台訂單作業了
有點麻煩,因採用一對多檔模式;在aspnet上的呈現無法像windows app 那樣直覺式,想來想去就是採用2層式來處理:主檔+明細+付款
(未來結構會綁定更多的應用區塊,等有空再貼上來了)


2020年6月28日 星期日

Using GridView's EmptyDataTemplate to insert new row

參考來源:Using GridView's EmptyDataTemplate to insert new row
--
精華段:
Sub ButtonEmptyInsert_Click(ByVal sender As Object, ByVal e As EventArgs)
        ' Insert new record
        Dim RowIndex As Integer = DirectCast(DirectCast(sender, Control).NamingContainer, GridViewRow).RowIndex
        Dim misship_id As DropDownList = TryCast(GridViewDetails.Rows(RowIndex).FindControl("DropListMisShipIDEmpty"), DropDownList)
        Dim code_id As DropDownList = TryCast(GridViewDetails.Rows(RowIndex).FindControl("DropListCodeEmpty"), DropDownList)
        Dim upc As TextBox = TryCast(GridViewDetails.Rows(RowIndex).FindControl("txtUPC"), TextBox)
        Dim description As TextBox = TryCast(GridViewDetails.Rows(RowIndex).FindControl("txtDescription"), TextBox)
        Dim qty_ordered As TextBox = TryCast(GridViewDetails.Rows(RowIndex).FindControl("txtQtyOrdered"), TextBox)
        Dim qty_received As TextBox = TryCast(GridViewDetails.Rows(RowIndex).FindControl("txtQtyReceived"), TextBox)
        Dim cost As TextBox = TryCast(GridViewDetails.Rows(RowIndex).FindControl("txtCost"), TextBox)
        Dim adjust_amount As TextBox = TryCast(GridViewDetails.Rows(RowIndex).FindControl("txtAdjAmt"), TextBox)
        Dim status As DropDownList = TryCast(GridViewDetails.Rows(RowIndex).FindControl("DropListStatusEmpty"), DropDownList)
        Dim status_quantity As TextBox = TryCast(GridViewDetails.Rows(RowIndex).FindControl("txtStatusQty"), TextBox)
        SourceMisShipDetails.InsertParameters("misship_id").DefaultValue = misship_id.SelectedValue
        SourceMisShipDetails.InsertParameters("code_id").DefaultValue = code_id.SelectedValue
        SourceMisShipDetails.InsertParameters("upc").DefaultValue = upc.Text
        SourceMisShipDetails.InsertParameters("description").DefaultValue = description.Text
        SourceMisShipDetails.InsertParameters("qty_ordered").DefaultValue = qty_ordered.Text
        SourceMisShipDetails.InsertParameters("qty_received").DefaultValue = qty_received.Text
        SourceMisShipDetails.InsertParameters("cost").DefaultValue = cost.Text
        SourceMisShipDetails.InsertParameters("adjust_amount").DefaultValue = adjust_amount.Text
        SourceMisShipDetails.InsertParameters("status").DefaultValue = status.SelectedValue
        SourceMisShipDetails.InsertParameters("status_quantity").DefaultValue = status_quantity.Text
        SourceMisShipDetails.Insert()
    End Sub

2020年6月27日 星期六

從RowCommand上的嵌套GridView中的DropDownList中檢索值

從RowCommand上的嵌套GridView中的DropDownList中檢索值
--
底下這段真是精華

// Calls when Inner GridView 's button clicked
protected void GridView_Inner_RowCommand(object sender, GridViewCommandEventArgs e)
{
    // get Inner GridView 's clicked row
    GridViewRow InnerGridViewRow = (GridViewRow)(((Control)e.CommandSource).NamingContainer);

    // get Inner GridView 's controls from clicked row
    TextBox TextBox_Inner = (TextBox)InnerGridViewRow.FindControl("TextBox_Inner");
    DropDownList DropDownList_Inner = (DropDownList)InnerGridViewRow.FindControl("DropDownList_Inner");

    // check if correct button is clicked
    if (e.CommandName == "BtnInnerCmd")
    {
        string DropDownListValue = DropDownList_Inner.SelectedValue;
        string TextBoxValue = TextBox_Inner.Text;

        Label_Result.Text = "DropDownList 's Selected Value is " + DropDownListValue +
                            "
TextBox 's Entered Value is " + TextBoxValue;
    }
}

2020年6月18日 星期四

crystal report 控制字體大小

1.請利用 CrystalReports 公式去判斷字數再去變更其字體大小
2.在欄位上右鍵 --> 格式物件 --> 字型(標籤) --> 大小 ,編輯其公式
3.參考以下公式
if length({@欄位名稱}) > 15 then 9 else 12

2020年5月29日 星期五

Windows 10 SSD 校能調整

最近把SATA HD 改SSD ,發現使用一段時間就變得超級慢
只好來看看怎回事了
改善寫入速度效能,以避免系統凍結
Inetl 這有一篇,調整的方法!!
目前我的調整共2個:
1.關閉 HD 的寫入快取
2.關閉 C: D: 的建立索引
完成後,請關機;再開機!  就有明顯的差異了
---
後續也是要在觀察看看了!
底下為參考圖