【.NET】非表示のコントロールからBindした値を取得できない

デザイナでVisible = FalseのコントロールにDataBindingsでDataSetの値をバインドして、後でこの値を使おうと思ったけど値が取得できない。

非表示に設定したコントロールには、バインドしてくれないみたい。

解決策はデザイナではVisible = Trueにしておいて、onLoad時にVisible = Falseにすると大丈夫。

コントロールを隠して利用する方法はAccessではよくやる手法だけど、マシンのリソースを消費するので、.NETの開発ではなるべくコントロールを隠して配置せず、メンバ変数を使うとかDataSetのCurrentを見るとかの方がいいかも。

コメント

  1. この件、僕も悩んだことがあります。

    DataGridViewのDataKeyNamesを設定(複数可)して、各行のINDEXを元にDataKeyオブジェクトを取得して処理するって手もありますよ。

    http://www.weblio.jp/content/DataKey

    返信削除
  2. コメントありがとうございます。
    もっとスマートに実現できる方法はないものかと悩んでました。
    教えていただいた方法も別の機会に試してみます。

    返信削除

コメントを投稿

このブログの人気の投稿

【.NET】DataGridViewを選択した際に背景色を変更しない

Can't open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links

【PostgreSQL】ROWNUMのように行番号(現在行)を取得するROW_NUMBER