2016-04-17 10 views
2

テキストラベルで特定の単語を見つけて太字にする方法を知りたい。たとえばdescriptionTxt.TextについてはC#で特定の単語を太字にする

が含まれているいくつかの単語「ステップ1 :,ステップ2:のように...

私はスペースが続くリテラルテキスト 『ステップ』を、検索する、1つのまたは複数の数字、コロン」と、これが太字に。

C#コード

protected void Page_Load(object sender, EventArgs e) 
      { 
       string ID = Request.QueryString["id"]; 
       RecipeID.Text = ID; 

       SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True"); 
       con.Open(); 
       try 
       { 

        SqlDataAdapter sda = new SqlDataAdapter("Select Recipe_Name, Recipe_Description, Recipe_Instructions FROM Recipe Where Recipe_ID= @recipeid", con); 
        sda.SelectCommand.Parameters.Add("@recipeid", SqlDbType.Int).Value = RecipeID.Text; 
        DataTable dt = new DataTable(); 
        sda.Fill(dt); 

        if (dt.Rows.Count > 0) 
         nameTxt.Text = dt.Rows[0][0].ToString(); 
        descriptionTxt.Text = dt.Rows[0][1].ToString(); 
        instructionsTxt.Text = dt.Rows[0][2].ToString(); 

        dt.Clear(); 

       } 
       catch (Exception ex) 
       { 

       } 

       con.Close(); 
      } 
+0

_ "これらを見つけたい" _ - define ** these **。太字にしたい単語を英語で定義できたら、それをコードに変換するのは簡単です。 – CodeCaster

+0

「etc」とはどういう意味ですか、**正確には**ですか?具体的にしてください。何を試しましたか? ''ステップ[0-9] +: ''のような正規表現は、あなたが望むことをするようです... – CodeCaster

+0

@CodeCasterエテトラが何を意味するのか分かりませんか?その手段はそうであり、それは第四です。リストのように続けます。ステップ1、ステップ2、ステップ3、ステップ4、ステップ5、ステップ6、ステップ7に進みます。 –

答えて

2

あなたが記述するパターンは、正規表現に適しています。 「作るために今

var stepRegex = new Regex("(Step [0-9]+:)"); 

:「コロンスペースに続いて、1つの以上の数字、 『』リテラルテキスト」ステップを意味する。この場合

表現(Step [0-9]+:)、あなたが尋ねるように、太字にすると、ASP.NETタグのHTMLコンテキストを引き継ぐことができるので、HTMLを使用することができます。これは、<b></b>タグで見つかった値をラップし、$1を使用して一致するグループを参照するのと同じくらい簡単です。

string content = "Step 1: do something. Step 2: see step 1."; 
string replaced = stepRegex.Replace(content, "<b>$1</b>"); 

これは"<b>Step 1:</b> do something. <b>Step 2:</b> see step 1."となります。

また、このHTMLをLabelコントロールに割り当てたい代わりに、リテラルを使用します。

+0

だから私はdescriptionTxt.Textでこの仕事をしたいと思ったら、ちょうどcontent = descriptionTxt.Textを追加するでしょうか? –

-1
descriptionTxt.Text = dt.Rows[0][1].ToString().Replace("Step1", "<b>Step1</b>"); 
+4

正しいですが、Stack Overflowの回答には単なるコード以上のものが含まれていると考えられます。つまり、このコードが動作する理由と使い方を**説明する必要があります。 –

関連する問題