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

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

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

全過去ログを検索

<< 0 >>
■42417  Re[2]: ASP.NETカスタムコントロールの作成
□投稿者/ sato -(2009/10/15(Thu) 14:38:45)
    No42416 (gtk2k さん) に返信
    > ASP.NETではカスタムコントロールを作成することはできない。
    > ユーザーコントロールなら作成可能。

    ユーザコントロールで数値入力用のテキストボックスやIMEの制御を行うようなテキストボックスを
    作ればいいのですね。
    今作ったのですが。
    ツールバーに表示されません。ビルドはしたのですが。
記事No.42415 のレス /過去ログ72より / 関連記事表示
削除チェック/

■64930  Re[2]: vb.netでのチェックボックスについて
□投稿者/ don -(2013/01/22(Tue) 19:40:57)
    No64928 (Three Uncles さん) に返信

    ありがとうございます。
    お教え下さったロジックで思い通りの実行が出来ることができました。
    (ステップインで試したところ、If内にうまく入ってくれました。)
    ご返答のほど、ありがとうございました。

    >>そして以下のロジックを各チェックボックスごとに作成しました。
    >>Private Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    >> Me.CheckBox2.Checked = False
    >>End Sub
    >>Private Sub CheckBox2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
    >> Me.CheckBox1.Checked = False
    >>End Sub
    >>
    >>このように作成したのですが、いざ動かしてみると、
    >>CheckBox1をクリックしチェックを入れた後、CheckBox2をクリックすると、
    >>CheckBox1のチェックは外れましたが、CheckBox2にチェックが入りませんでした。
    >
    > まぁ、当然でしょう。
    > CheckBox2にチェックを付けた時、イベントでCheckBox2_CheckedChangedが呼び出されますが、ここで
    >
    >>Me.CheckBox1.Checked = False
    >
    > が実行されるわけですが、この時にCheckBox1のチェック状態が変わります。
    > つまり、イベントでCheckBox1_CheckedChangedが呼び出されます。
    > ここでは、
    >
    >>Me.CheckBox2.Checked = False
    >
    > が実行されますので、CheckBox2のチェックは外されるわけです。
    >
    > もし、自分がチェックされたら相手のチェックを外す、ということを行いたいのであれば、
    > こんな感じでどうでしょう(動作未確認)。
    >
    > Private Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    > If Me.CheckBox1.Checked Then '念のため、CheckBox1にチェックを付けた時、この段階でCheckBox1.CheckedがTrueになっているかを確認してください。
    > Me.CheckBox2.Checked = False
    > End If
    > End Sub
    >
記事No.64924 のレス / END /過去ログ109より / 関連記事表示
削除チェック/

■85125  Re[2]: C#のカウント
□投稿者/ 大谷刑部 -(2017/09/12(Tue) 10:55:44)
    No85120 (魔界の仮面弁士 さん) に返信
    > ■No85118 (しろ さん) に返信
    >>釦を押すごとにカウント
    >
    > private int counter;
    > private void Form1_Load(object sender, EventArgs e)
    > {
    >   counter = 0;
    >   label1.Text = counter.ToString("N0");
    > }
    > private void button1_Click(object sender, EventArgs e)
    > {
    >   label1.Text = (++counter).ToString("N0");
    > }
    >
    > Public Class Form1
    >   Private counter As Integer
    >   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    >     counter = 0
    >     Label1.Text = counter.ToString("N0")
    >   End Sub
    >   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    >     counter += 1
    >     Label1.Text = counter.ToString("N0")
    >   End Sub
    > End Class

    ちなみに+=はVBでも使えます。(.Netの初期から)
    そもそもVBとC#でできることにそんなに差はないかと。
    特に最近は構文がBasic系とC系の違いがある以外は、
    ほとんど違いを感じません。


    >>Label1.Text = Label1.Text + 1
    >
    > VB のそれは、Option Strict On ではエラーになるのご注意ください。
    >
    > Option Strict Off の場合に限りコンパイルが通りますが、その場合は
    >  Label1.Text = CStr(CDbl(Label1.Text) + 1.0)
    > に相当するコードとして処理されることになります。

    むしろこのやり方の方がVB6チックな感じが。
    魔界の仮面弁士 さんがご指摘の通り、
    非明示変換が発生するのでやるとしても整数のみの方がよいでしょう。
    小数で型変換を指定しない場合は2進型であるdoubleで内部処理されるので
    端数ずれの元です。
記事No.85118 のレス /過去ログ145より / 関連記事表示
削除チェック/

■85129  Re[3]: C#のカウント
□投稿者/ 魔界の仮面弁士 -(2017/09/12(Tue) 11:53:29)
    No85125 (大谷刑部 さん) に返信
    > そもそもVBとC#でできることにそんなに差はないかと。

    とはいえ、言語仕様の微妙な差異は少なからずあるわけで。


    今回の質問の意図は、VB のコードを真似て
     // C#
     label1.Text = label1.Text + 1;
    と書いて見た場合に、数値加算ではなく、文字列連結になってしまい、結果として
     ' Visual Basic
     Label1.Text = Label1.Text & 1
    に相当する処理になってしまったことが発端と推察します。


    というのも、文字列型の値と整数型の値を + 演算した場合、
    C# では string 型の連結処理として扱われますが、
    VB では Double 型の加算処理として扱われる仕様だからです。
    (この仕様は Option Strict の On/Off とは無関係です)


    ついにで書いておくと、"123" * 2 という演算を行った場合、
    C# はコンパイルエラーとなりますが、
    Visual Basic は Double 型の 246 となり、
    PowerShell は String 型の "123123" になります。

    また、除算演算子の仕様も VB と C# とで異なっていますね。


    >>  Label1.Text = CStr(CDbl(Label1.Text) + 1.0)
    >> に相当するコードとして処理されることになります。
    > むしろこのやり方の方がVB6チックな感じが。
    VB6 だと、Label1.Text ではなく Label1.Caption になりそうですが、それはさておき。

    個人的にはカウンター変数を用意するべきと思っていますが、
    元の VB コードを真似て、あえてラベル単体でカウントさせるなら、
     label1.Text = 1 + int.Parse(label1.Text) + "";
    などと書くこともできそうです。


    > 非明示変換が発生するのでやるとしても整数のみの方がよいでしょう。
    > 小数で型変換を指定しない場合は2進型であるdoubleで内部処理されるので
    > 端数ずれの元です。
    カウント値が 整数型 であるべきという点についてはそのとおりですね。

    ただ端数といっても、double 型の精度は、2進数で52+1桁分あるので、
    小数値を使わずに『整数値』に限定して扱う分には、
    double 型でも誤差が生じることはありません。(10進数で15桁以下であれば)
記事No.85118 のレス /過去ログ145より / 関連記事表示
削除チェック/

■85132  Re[4]: C#のカウント
□投稿者/ しろ -(2017/09/12(Tue) 12:32:34)
    No85129 (魔界の仮面弁士 さん) に返信
    > ■No85125 (大谷刑部 さん) に返信
    >>そもそもVBとC#でできることにそんなに差はないかと。
    >
    > とはいえ、言語仕様の微妙な差異は少なからずあるわけで。
    >
    >
    > 今回の質問の意図は、VB のコードを真似て
    >  // C#
    >  label1.Text = label1.Text + 1;
    > と書いて見た場合に、数値加算ではなく、文字列連結になってしまい、結果として
    >  ' Visual Basic
    >  Label1.Text = Label1.Text & 1
    > に相当する処理になってしまったことが発端と推察します。
    >
    >
    > というのも、文字列型の値と整数型の値を + 演算した場合、
    > C# では string 型の連結処理として扱われますが、
    > VB では Double 型の加算処理として扱われる仕様だからです。
    > (この仕様は Option Strict の On/Off とは無関係です)
    >
    >
    > ついにで書いておくと、"123" * 2 という演算を行った場合、
    > C# はコンパイルエラーとなりますが、
    > Visual Basic は Double 型の 246 となり、
    > PowerShell は String 型の "123123" になります。
    >
    > また、除算演算子の仕様も VB と C# とで異なっていますね。
    >
    >
    > >>  Label1.Text = CStr(CDbl(Label1.Text) + 1.0)
    > >> に相当するコードとして処理されることになります。
    >>むしろこのやり方の方がVB6チックな感じが。
    > VB6 だと、Label1.Text ではなく Label1.Caption になりそうですが、それはさておき。
    >
    > 個人的にはカウンター変数を用意するべきと思っていますが、
    > 元の VB コードを真似て、あえてラベル単体でカウントさせるなら、
    >  label1.Text = 1 + int.Parse(label1.Text) + "";
    > などと書くこともできそうです。
    >
    >
    >>非明示変換が発生するのでやるとしても整数のみの方がよいでしょう。
    >>小数で型変換を指定しない場合は2進型であるdoubleで内部処理されるので
    >>端数ずれの元です。
    > カウント値が 整数型 であるべきという点についてはそのとおりですね。
    >
    > ただ端数といっても、double 型の精度は、2進数で52+1桁分あるので、
    > 小数値を使わずに『整数値』に限定して扱う分には、
    > double 型でも誤差が生じることはありません。(10進数で15桁以下であれば)

    どうもありがとうございます
    VBはある程度プログラミングスクールで習ったのですがC#は自己流でべきょうしているので
    かなかなわかりせんでした>


記事No.85118 のレス / END /過去ログ145より / 関連記事表示
削除チェック/

■99920  vb.net datagridiew内にボタンを配置したい
□投稿者/ ゆい -(2022/06/21(Tue) 13:18:45)

    分類:[VB.NET/VB2005 以降] 

    2022/06/21(Tue) 13:32:16 編集(投稿者)
    2022/06/21(Tue) 13:32:13 編集(投稿者)

    vb.netでDataGridView内にボタンを入れたいです。

    やりたい流れとしては

    ID passwordを入力し、検索ボタンを押下したら、datagridview内にユーザ情報が出力され、
    その最後の列のそれぞれの行にボタンを配置したいです。

    Dim colBtn As New DataGridViewButtonColumn()
    colBtn.Name = "表示"
    colBtn.Text = "ボタン"
    dgUserList.Columns.Add(colBtn)

    上記のコードを検索ボタンクリック時イベントに入れたとき、検索ボタンを二回押下した際に、ユーザ情報のカラムまで
    ボタンに浸食されてしまったため、上記コードを入れる位置を変更したらいいのではないかと考えているんですが、
    もしまったく違うより良い方法があれば教えていただきたいです。

    もしくは、上記コードを入れるべき場所を教えていただきたいです。

    宜しくお願いします。
親記事 /過去ログ174より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -