C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■9184  Re[3]: 文字列操作
□投稿者/ επιστημη -(2007/10/20(Sat) 13:29:15)
>
    > dim Wk as string="ABCDEF"
    > WkをLength で数えて6

    長さNの文字列の頭っからN-1文字分を取り出せばよろしいですな。
    Substringによって文字列の任意の部分から部分文字列を取り出すことができます。
記事No.9178 のレス /過去ログ21より / 関連記事表示
削除チェック/

■9183  Re[3]: 文字列操作
□投稿者/ はつね -(2007/10/20(Sat) 13:28:03)
>
    No9181 (みかん さん) に返信
    > まず、Length で文字数を数え、rightやsubstringと絡めると混乱して
    > 分からなくなります。

    なぜですか?

    (1) Lengthで文字数を数える
    (2) Substringで先頭からも文字数-1までを取り出す

    混乱する要素はなさそうですよ。
記事No.9178 のレス /過去ログ21より / 関連記事表示
削除チェック/

■55965  Re[3]: データグリッドビューの行の色を高速に描画したい
□投稿者/ やじゅ -(2010/12/20(Mon) 23:07:25)
>
    No55958 (田中さん さん) に返信
    > e.CellStyle.BackColor = Color.Black;
    > とすれば背景が変わってくれる事を期待したのですが、全く色がついてくれません。

    CellFormattingイベントで行えばいいのでは?
    DataGridViewのセルの値によってセルスタイルを変更する
    http://dobon.net/vb/dotnet/datagridview/cellformatting.html
記事No.55495 のレス /過去ログ94より / 関連記事表示
削除チェック/

■84278  Re[1]: ループでの処理
□投稿者/ 魔界の仮面弁士 -(2017/06/08(Thu) 12:34:14)
    No84277 (lop さん) に返信
    > @同じ処理をLabel別でしたいが、11のLabelに対し同じ処理を書く必要があるのか?

    あらかじめ、Form の Load イベントなどで

     Private Lamps() As Label
     Private Sub Form1_Load(……
       Lamps = New Label() { Lamp1, Lamp2, Lamp3, … }
     End Sub

    などのように、配列に保存しておくと、利用する際に

     For Each lbl In Lamps
      lbl.ForeColor = Color.Red
     Next

    あるいは

     For i = 0 To Lamps.GetUpperBound()
      Lamps(i).ForeColor = Color.Red
     Next

    などとループ処理できます。


    > If read(0) = "@処理してください" Then
    >   Lamp1.ForeColor = Color.Red

    文字列との紐付けが必要ならば、たとえば
     Private hash As New Dictionary(Of String, Label)()
     Private Sub Form1_Load(……
       hash.Add("@処理してください", Lamp1)
       hash.Add("A処理してください", Lamp2)
       hash.Add("B処理してください", Lamp3)
         :
     End Sub
    のようにしておいて、
      For Each line In read
       If hash.ContainsKey(line) Then
        hash(line).ForeColor = Color.Red
       End If
      Next
    とか。
記事No.84277 のレス /過去ログ144より / 関連記事表示
削除チェック/

■92854  自作クラスからのフォームコントロール操作
□投稿者/ amanda102 -(2019/11/02(Sat) 20:57:59)

    分類:[.NET 全般] 

    C#でオブジェクト指向プログラミングを勉強中です。

    自作クラスからメインフォームのコントロールを例のように操作したいのですが
    他の質問系のサイトで↓のような回答がありました

    "一般論としてコントロールをpublicメソッドに渡すような設計はあまり推奨できません。"

    何が問題になるのでしょうか?

    --
    例@
    Formに貼り付けているボタンをクリック、
    自作クラスのメソッドが呼び出され値をFormにあるテキストボックスに代入
    --
親記事 /過去ログ160より / 関連記事表示
削除チェック/

■92855  Re[1]: 自作クラスからのフォームコントロール操作
□投稿者/ Azulean -(2019/11/02(Sat) 23:07:07)
    2019/11/02(Sat) 23:10:53 編集(投稿者)

    No92854 (amanda102 さん) に返信
    > "一般論としてコントロールをpublicメソッドに渡すような設計はあまり推奨できません。"
    >
    > 何が問題になるのでしょうか?

    いろいろと切り口はありそうです。

    ・スレッドの考慮が忘れてしまいがち
    ・複数のクラスにコントロールのインスタンスを渡してしまっていると、コードの流れの把握が難しい、デバッグしづらくなる(誰がいつどこで書き換えたのか…?となる)
    ・誰がそのインスタンス(コントロール)を管理するのか曖昧になる
    ・寿命管理が弱くなる (フォームを閉じた後もそのクラスが生き残っているなど)
    ・クラスの責務が広くなる
    ・クラスの再利用性が下がる (少し設計を頑張れば、コントロールと癒着せずとも作れる→再利用性が上がるかも)
    ・コントロールに限らず、フィールド変数の多いクラスは理解する、修正するのが大変になりやすい
    ・コントロールに限らず、いろいろなクラスと密結合していると仕様変更に弱くなる


    おそらく、下記のスレッドなのかと思いますが、この例であれば、「テキストボックス自体を渡さなくてもクラスは成り立つ」(責務を狭く・小さくできる)ということだと思います。
    https://ja.stackoverflow.com/a/28646


    > --
    > 例@
    > Formに貼り付けているボタンをクリック、
    > 自作クラスのメソッドが呼び出され値をFormにあるテキストボックスに代入
    > --

    私もこの例の場合、テキストボックスをクラスに渡す…を第一候補とせずに考えますね。

    1. クラスは文字列を生成するだけの責務にできないか?
    2. 生成するタイミングが別だとしても、イベントで通知、コールバックで通知などの方式が良いと言うことはないか?
    3. テキストボックスに代入するのはこのクラスに限定され、かつこのテキストボックスと同種のパターンがあるというように、部品化して問題なく、メリットがあるか?
     (例:ファイル名を D&D を受け取るヘルパークラスなど)
記事No.92854 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92860  Re[2]: 自作クラスからのフォームコントロール操作
□投稿者/ amanda102 -(2019/11/03(Sun) 12:56:02)
    Azulean さん
    >複数のクラスにコントロールのインスタンスを渡してしまっていると、
    >コードの流れの把握が難しい、
    Goto文を多用したスパゲッティコードのようになってしまうのですね
    構造をよく考えないと、自分が作ったものでも
    時間が経過した後で見返した時、解読できなくなってしまいますね

    勉強になりました。
    誠に有難うございました。

    No92855 (Azulean さん) に返信
    > 2019/11/02(Sat) 23:10:53 編集(投稿者)
    >
    > ■No92854 (amanda102 さん) に返信
    >>"一般論としてコントロールをpublicメソッドに渡すような設計はあまり推奨できません。"
    >>
    >>何が問題になるのでしょうか?
    >
    > いろいろと切り口はありそうです。
    >
    > ・スレッドの考慮が忘れてしまいがち
    > ・複数のクラスにコントロールのインスタンスを渡してしまっていると、コードの流れの把握が難しい、デバッグしづらくなる(誰がいつどこで書き換えたのか…?となる)
    > ・誰がそのインスタンス(コントロール)を管理するのか曖昧になる
    > ・寿命管理が弱くなる (フォームを閉じた後もそのクラスが生き残っているなど)
    > ・クラスの責務が広くなる
    > ・クラスの再利用性が下がる (少し設計を頑張れば、コントロールと癒着せずとも作れる→再利用性が上がるかも)
    > ・コントロールに限らず、フィールド変数の多いクラスは理解する、修正するのが大変になりやすい
    > ・コントロールに限らず、いろいろなクラスと密結合していると仕様変更に弱くなる
    >
    >
    > おそらく、下記のスレッドなのかと思いますが、この例であれば、「テキストボックス自体を渡さなくてもクラスは成り立つ」(責務を狭く・小さくできる)ということだと思います。
    > https://ja.stackoverflow.com/a/28646
    >
    >
    >>--
    >>例@
    >>Formに貼り付けているボタンをクリック、
    >>自作クラスのメソッドが呼び出され値をFormにあるテキストボックスに代入
    >>--
    >
    > 私もこの例の場合、テキストボックスをクラスに渡す…を第一候補とせずに考えますね。
    >
    > 1. クラスは文字列を生成するだけの責務にできないか?
    > 2. 生成するタイミングが別だとしても、イベントで通知、コールバックで通知などの方式が良いと言うことはないか?
    > 3. テキストボックスに代入するのはこのクラスに限定され、かつこのテキストボックスと同種のパターンがあるというように、部品化して問題なく、メリットがあるか?
    >  (例:ファイル名を D&D を受け取るヘルパークラスなど)
    >
記事No.92854 のレス / END /過去ログ160より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -