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

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

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

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>
■27149  WPFブラウザアプリでのデータベース接続[XBAP]
□投稿者/ YK -(2008/10/29(Wed) 14:11:08)

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


    【作業環境】
    OS:Windows Server 2008 Standard
    使用ソフトウェア:VisualStudio2008
    開発言語:VB
    作成プロジェクト:WPFブラウザアプリケーション

    【質問内容】
    はじめまして、YKと申します。
    現在上記作業環境にてWPFブラウザアプリ(XBAP)の勉強をしております。
    初心者なので、あまり調べきれず質問させて頂きますがよろしくお願いします。

    ボタンをクリックするとMSSQLServerに格納されたデータをADO.NETで取得するプログラムを
    下記のように記述しています。

    ----------------------------------------------------------
    Private Sub Button2_Click(省略)
    Dim strCn As String
    Dim strSql As String

    strCn = "Data Source=WIN-AZMAEBYTS8A\SQLEXPRESS;Initial Catalog=DamDB;Integrated Security=True"
    strSql = "SELECT * FROM tblPLCValue;"

    Dim connection As SqlConnection = New SqlConnection(strCn)
    Dim dtAdapter As SqlDataAdapter = New SqlDataAdapter(strSql, strCn)
    Dim cb As SqlCommandBuilder = New SqlCommandBuilder(dtAdapter)
    Dim dtTable As DataTable = New DataTable

    dtAdapter.Fill(dtTable)  'データセット

    End Sub
    ----------------------------------------------------------

    上記プログラムを通常のVBのWindowsアプリやWPFアプリで記述すれば、最後のdtTableにデータセットが
    格納されるのですが、WPFブラウザアプリケーションで実行すると、「SecurityException」のエラーが出ます。

    基本的なことかもしれませんが、原因不明のため、どなたかご存知であればご教授願います。

    またWPFブラウザアプリは通常のWindowsアプリ感覚で作成できるものと思っていたのですが、
    何かWPFブラウザアプリを使用する際に知っておかなければならないことなどあれば教えてください。

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

■27193  Re[2]: WPFブラウザアプリでのデータベース接続[XBAP]
□投稿者/ YK -(2008/10/30(Thu) 10:39:37)
    >紅の豚様

    調べていただいてありがとうございます。

    いろいろと確認していて、プロジェクトのプロパティを開くとセキュリティ関係の設定があったので
    「これは完全に信頼するアプリケーションです」という項目を選択して、ビルドするとDBへのアクセス処理が
    通りました。


    しかしながらデバッグ環境では実行できるのですが、今度はそのWEBアプリを発行してクライアントからブラウザで
    アクセスすると、ブラウザ画面上に

        −−−−−−−−−−−−−−−−−−−−−−−−
         × 信頼されていません
          アプリケーションは、信頼されておらず、安全でない可能性があるため
          展開できません。
        −−−−−−−−−−−−−−−−−−−−−−−−

    という画面が出ます。
    ローカル(サーバ)でブラウザから見ても同様です。

    エラーの詳細を見たら
       
       ------------------------------------------------------------------------------
       エラーの概要
    以下はエラーの概要です。これらのエラーの詳細はログに一覧表示されています。
    * 信頼を決定している間に例外が発生しました。 次の失敗メッセージが検出されました:
    + ユーザーは必要なアクセス許可をアプリケーションに与えることを拒否しました。
    ------------------------------------------------------------------------------

    という内容でした。

    XBAPはセキュリティ面がいろいろと厳しい気がします。
    このあたりの設定面をどうしたらいいかご存知でしたら教えてください。

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

■27480  Re[1]: Label表示について
□投稿者/ カドルドエグ -(2008/11/07(Fri) 11:29:04)
    No27472 (のろ さん) に返信
    // 解決済ですが別解ということで…
    
    label1.Textの初期値は空文字にしておいて、
    
    private string エラーメッセージを返す()
    {
      // ------ エラー判定処理とか ------
      
      return エラーがあったらメッセージ、何もなければ空文字;
    }
    というメソッドを用意して
    
    label.Text = エラーメッセージを返す();
    
    エラーがあれば文が表示され、何もなければ空文字表示 = 実質的に見えないのと同じになります。
    if文を減らしたい場合には良いのではないかなと。
記事No.27472 のレス / END /過去ログ50より / 関連記事表示
削除チェック/

■27425  Re[6]: パネルのスクロールについて
□投稿者/ Mr.T -(2008/11/05(Wed) 16:54:29)
    Mr.Tです、こんにちは。
    
    scrollIntoViewというメソッドが「Javascript」にあるのですが、
    
    http://msdn.microsoft.com/ja-jp/library/cc428162.aspx
    
    
    ---引用ここから
    次の例は、エレメントをウィンドウ内の表示される位置までスクロールし、しかもそれをウィンドウの上端または下端に合わせる。このメソッドを使えば、ユーザーがスクロールさせなくてもすぐにそのエレメントを見ることができる。この例では、5番目の段落にアンダーラインを引いて、ウィンドウの上端にそれが見えるようにスクロールしている。 
    var coll = document.all.tags("P");
    if (coll.length>=5) {
        coll(4).style.textDecoration = "underline";
        coll(4).scrollIntoView(true);
    }
    
    指定したオブジェクトのサイズや現在のウィンドウのサイズによっては、このメソッドは正確に上端または下端に配置できない場合もあるが、できるだけそれらに近い位置に配置する。
    
    --ここまで
    
    これは、対象となるObjectを上端下端のどちらに表示するか、ということになるので、
    右、左ってのは別途アンカーのタグを用意して、
    
    -------------------------------------------------
    (アンカー的な何か)             表示したい部分|△|
                           |  |
                           |  |
                           |▽|
    -------------------------------------------------
    
    みたいな感じにしないとだめでしょうね。
    
    
    
記事No.27401 のレス /過去ログ50より / 関連記事表示
削除チェック/

■27662  Re[3]: 再帰をループに変換
□投稿者/ Jitta -(2008/11/11(Tue) 21:35:25)
>
    No27539 (C学習中 さん) に返信
     C でクイックソートなら、qsort(3) を使う。いじょ
    
    typedef struct {
        int* pArray;
        int count;
    } SortIntStruct;
    void SortInt(SortIntStruct* data);
    
    int main(int argc, char** argv)
    {
        int idx;
        int size, *org;
        SortIntStruct sortData;
        if (argc < 2) {
            return -1;
        }
        size = sizeof(int) * argc;
        org = (int*) malloc(size);
        memset(org, 0, size);
        for (idx = 1; idx < argc; ++idx) {
            org[idx - 1] = atoi(argv[idx]);
            printf("%d ", org[idx - 1]);
        }
        printf("\n");
        sortData.pArray = org;
        sortData.count = argc - 1;
        SortInt(&sortData);
        // TODO 表示
        free(org);
    }
    
    void SortInt(SortIntStruct* data)
    {
        SortIntStruct *ptr = (SortIntStruct*) malloc(sizeof(SortIntStruct));
        ptr->pArray = &(data->pArray[0]);
        ptr->count = data->count;
        while (ptr != NULL) {
            // TODO ここで入れ替えとスタックへの積み込みをやる
            // ごめん、疲れた。。。
            free(ptr);
            ptr = Pop();
        }
    }
    
    // -----
    static void* stack = NULL;
    static int stackSize = 0;
    void* Pop(void);
    int Push(void* data);
    
    int Push(void* data)
    {
        int sz = stackSize + 1;
        void* ptr = NULL;
        if (stackSize == 0) {
            ptr = (void*) malloc(sizeof(void*) * stackSize);
        } else {
            ptr = (void*) realloc(stack, stackSize);
        }
        stack = ptr;
        memcpy(&stack[stackSize], data, sizeof(void*));
        stackSize = sz;
        return stackSize;
    }
    
    void* Pop(void)
    {
        void* ptr = NULL;
        void* ret = NULL;
        if (stackSize == 0) { return NULL; }
        ret = stack[--stackSize];
        // 今までに確保した最大を別途保存しておけば、
        // 毎回サイズを縮小する必要はない。
        // ただし、いつかどこかで解放してやる必要がある。
        ptr = (void*) realloc(stack, stackSize);
        stack = ptr;
        return ret;
    }
    
記事No.27535 のレス /過去ログ50より / 関連記事表示
削除チェック/

■27938  Re[7]: PDFファイルの操作について
□投稿者/ Azulean -(2008/11/17(Mon) 22:54:39)
    2008/11/18(Tue) 01:07:34 編集(投稿者)

    会社で見ていてかなり危なっかしいような気がしたので。。。

    > 3. iTextの不要なソースを削除して最低限必要な処理だけにする。
    この部分は削除という変更を加えているように解釈できます。

    > 4. 必要最低限のiTextのソースを解析し(3番の処理を実施している時点で
    >   ある程度の解析は済んでいるので、そう大変でもないはず)VBに置き換える。
    この結果、生成されるソースコードや製品は自分(自社)の著作物であり、iTextの著作権を侵害していないと言えるのでしょうか?
    iTextのソースをベースに改造している、翻訳しているのであれば、著作権が問題になるのでは?

    -----
    質問主向け:

    ところで、LGPL/MPLですけれども、使用する予定の製品はソース公開がOKなのですか?
    クローズドソースにしなければならないのであれば、iTextの改造なんてしちゃだめですよ。
    もちろん、ソースを見て、書き直すのもNGです。
記事No.27793 のレス /過去ログ51より / 関連記事表示
削除チェック/

■28051  Re[1]: ネットワーク上の端末のメモリ監視
□投稿者/ 魔界の仮面弁士 -(2008/11/19(Wed) 11:02:31)
    No28038 (ひろこ さん) に返信
    >  ・ネットワーク上にある端末の特定のサービスの再起動
    
    サーバー名="hoge"、サービス名="W32Time" だとした場合、
    「PowerShell でよければ」下記の 3 行で再起動できました。
    
    ------
    (Get-WmiObject -computer hoge Win32_Service -Filter "Name='W32Time'").StopService()
    Start-Sleep -m 10000    # 10000ミリ秒待機
    (Get-WmiObject -computer hoge Win32_Service -Filter "Name='W32Time'").StartService()
    ------
    
    Restart-Service というコマンドレットもあるのですが、
    リモートに接続できないようなので、WMI を利用しています。
    
    
    上記の PowerShell コマンドと同様のことを C# で処理するとなると、たとえばこんな感じ。
    
    using System;
    using System.Management;
    
    class Class1
    {
        static void Main()
        {
            string serverName = "hoge";
            string serviceName = "W32Time";
    
            string wql = string.Format(
                "SELECT * FROM Win32_Service WHERE Name = '{0}'",
                serviceName.Replace(@"\", @"\\"));
    
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(
                @"\\" + serverName + @"\root\cimv2", wql);
            foreach (ManagementObject o in searcher.Get())
            {
                // http://msdn.microsoft.com/en-us/library/aa393673.aspx
                uint resultStop = (uint)o.InvokeMethod("StopService", new object[] { });
                Console.WriteLine("StopService:{0}", resultStop);
            }
            Console.WriteLine("10秒待機");
            System.Threading.Thread.Sleep(10000);
            foreach (ManagementObject o in searcher.Get())
            {
                // http://msdn.microsoft.com/en-us/library/aa393660.aspx
                uint resultStart = (uint)o.InvokeMethod("StartService", new object[] { });
                Console.WriteLine("StartService:{0}", resultStart);
            }
        }
    }
    
    
    >  ・ネットワーク上にある端末の特定のプロセスが使用しているメモリを監視
    こちらは WMI のイベント監視にて、Win32_Process クラスの WorkingSetSize プロパティを
    参照するようにすれば良いかも。
    
    
    # ってもたもたと書いているうちに、いろいろと回答が付いてる…。
記事No.28038 のレス /過去ログ51より / 関連記事表示
削除チェック/

■28139  Re[1]: textBoxの文字数制限について。
□投稿者/ みきぬ -(2008/11/20(Thu) 15:05:13)
    2008/11/20(Thu) 15:26:11 編集(投稿者)

    No28138 (C#初心者 さん) に返信
    > C#のtextBoxのMaxLengthプロパティの使って
    > 文字数制限を設定したのですが、それ以上
    > 入力できてしまうのでどうしたら設定した
    > 文字数以上入力できないようになりますでしょうか?
    >
    Windowsフォーム(またはWebアプリ)で TextBox.MaxLength プロパティにどんな値を設定し、どのような文字を入力したら入力できてしまうのか、教えてくれ。話はそれからだ。


    それはそれとして、文字数といわゆる半角の桁数(あるいはバイト数)を勘違いしているに一票。

    ----- 追記
    よし、配置した TextBox と、プロパティを設定した TextBox が違っているというのにもう一票だ。
記事No.28138 のレス /過去ログ51より / 関連記事表示
削除チェック/

■27959  Re[10]: チェックボックスに関して
□投稿者/ みきぬ -(2008/11/18(Tue) 09:53:12)
    2008/11/18(Tue) 09:53:47 編集(投稿者)

    No27936 (Jitta on the way さん) に返信
    > >>全てにチェックが入っている状態から、個別のチェックボックスを外すこともできる訳で、そうなるとチェックされている状態の意味が違ってきてしまいますよね?
    >>個別のチェックボックスを外すと[すべて]のチェックボックスはoffになるんだからいいのでは?
    >>それに仕様の問題だし…
    > 「すべて」が、三値(グレーになるやつ)でないといけないように思います。
    >
    別にいけないことはないですよね?
    せっかく Windows Form なんだから、そのほうがいいかなーとは思いますが。
    # グレー表示だと、コントロールが使えないと勘違いしちゃうお客さんもいるかもしれないし! ていうかいたし!


    >>[.jpg]、[.bmp]、[.wma]に関しては、3つがすべてチェックされれば、[すべて]がonになり、
    >>1つでもチェックされていなければ、[すべて]がoffとなります。
    > じゃ、「すべて」にチェックした後、「wma」をオフにしたら、全体的にどうなっていて欲しいの?それに対して、今はどうなってしまうの?
    >
    現状はどうなっているかわかりませんが、全体的にどうなっていて欲しいのかは

    ・[すべて] にチェックした時
    ■すべて ■.jpg ■.bmp ■.wma

    ・そこから [wma] のチェックを外したとき
    □すべて ■.jpg ■.bmp □.wma

    ってなっててほしいわけですよね。
    少なくとも回答者の方はそういう認識でいると思っていましたが、はてさて。

    -----
    凝ってたら先を越されたw
記事No.27918 のレス /過去ログ51より / 関連記事表示
削除チェック/

■28009  Re[6]: チェックボックスに関して
□投稿者/ みきぬ -(2008/11/18(Tue) 18:32:26)
    2008/11/18(Tue) 18:50:07 編集(投稿者)

    それじゃあ私はさらに泥臭い、フラグ変数を使った方法でも示してみましょうか。

    ※準備※
    ・Form に、allCheckBox、bmpCheckBox、wmaCheckCox、jpgCheckBox を配置する
    ・allCheckBox の CheckedChanged イベントに allCheckBox_CheckedChanged を紐づける
    ・ほか3つの CheckBox の CheckedChanged イベントに otherCheckBox_CheckedChanged を紐づける

    private bool isChanging = false;

    private void allCheckBox_CheckedChanged(object sender, EventArgs e)
    {
    if (isChanging)
    {
    // 別のイベント処理でチェック状態の変更中だから何もしない!
    }
    else
    {
    isChanging = true;
    bmpCheckBox.Checked = allCheckBox.Checked;
    wmaCheckCox.Checked = allCheckBox.Checked;
    jpgCheckBox.Checked = allCheckBox.Checked;
    isChanging = false;
    }
    }

    private void otherCheckBox_CheckedChanged(object sender, EventArgs e)
    {
    if (isChanging)
    {
    // 別のイベント処理でチェック状態の変更中だから何もしない!
    }
    else
    {
    isChanging = true;
    allCheckBox.Checked = (bmpCheckBox.Checked && wmaCheckCox.Checked && jpgCheckBox.Checked);
    isChanging = false;
    }
    }

    # ついうっかり、巷で話題になった空のif文を使ってしまった(ぉ

    -----
    準備の項を追加しました。
記事No.27918 のレス /過去ログ51より / 関連記事表示
削除チェック/

■28444  Re[5]: データを数値と認識する方法。
□投稿者/ Jitta -(2008/11/26(Wed) 12:00:02)
    No28430 (たけし さん) に返信
    >
    >>だから、「ちなみに、受信した文字列は
    >>「??9\a7\t」このような文字です。」が、どうなるのですか?
    >
    >
    > 2バイトが1つの数値となると思います。
    ??????????

    なぜ2バイトが1つの数値になるのですか?1バイトは、現在では8ビットとされています(本来は、その処理系が扱いやすい長さ)。私は「8ビットの値」と書いてあったので、「1バイトの数値」だと思っていたのですが。。。
    あるいは、どことどこの2バイトで、1つの数値になるのですか?
    最初の投稿には「文字列+8ビットの値を持つデータ」と書かれています。では、このデータのどこまでが「文字列」で、どこからが「8ビットの値」なのでしょう?

    あるいは。
    なぜ、byte で受信したものを「文字列」として掲示板にペーストするのですか?化けるのは当然ですよね?


    「初心者なのでわからなかった」という言い訳はしないでください。「初心者」は、知ろうとしないことの言い訳にはなりません。他の人も含めて、回答された方々の何がわからないのか、具体的に書いてください。
    私たちは、あなたを知りません。あなたがどんなことを知っているのか、知りません。あなたが自分を「初心者」と判断する基準を知りません。そういった情報を与えていただかないと、何をどう書いたらあなたが理解できるのか、わかりません。


    -----
    No28437 (渋木宏明(ひどり) さん) に返信

    > >バイト型で受信しようとするとエラーが起きてしまいます。
    >
    > を解決するところから手をつけるべきでしょう。

    あ、そう理解されましたか。
    私は文字列とバイト型の合わさったものを Parse しようとして、Parse がエラーになる、、、と理解したのですが。

    第一、バイト型ってことは、すでに数値なんですよね。それをどう変換したいのか、わからん(>_<)
記事No.28405 のレス /過去ログ51より / 関連記事表示
削除チェック/

■28658  proxy経由でのアクセス
□投稿者/ モジモジ君 -(2008/11/28(Fri) 15:50:28)

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

    初めまして、モジモジ君と申します。

    【環境】
    WindowsXP pro
    VS2002 vb.net

    ここで質問できる問題かどうか不安ですがご教授願います。
    現在.netを使用してHTTPでのファイル転送のアプリを制作しているのですが、
    Proxy接続で

    『リモートサーバがエラーを返しました:(407)プロキシ認証が必要です』

    のエラーメッセージが表示されてしまいます。
    ProxyではID/PWが必要ない設定になっているらしいのですが・・・

    実際に動作させると、あるネットワーク環境では正常に動作するのですが、
    別のネットワーク環境では上記のエラーとなってしまいます。
    Proxyサーバはそれぞれに構成されています。

    以下、ソースの抜粋です。
    -------------------------------------------------------------------
    'WebRequestの作成
    Dim req As System.Net.WebRequest = _
    System.Net.WebRequest.Create(https://xxxxx/cgi-bin/xxxx.cgi)

    'Proxyを設定
    ' バイパスを設定する
    Dim bypassUrls() As String = {"aaa\.bbb\.jp"}
    req.Proxy = _
    New System.Net.WebProxy("http://xxxxx:8080", True, bypassUrls)
    -------------------------------------------------------------------

    必要な情報等がありましたら私のわかる限りですが返答します。
    長くなってしまい申し訳ありませんが宜しく願います。

親記事 /過去ログ52より / 関連記事表示
削除チェック/

■28653  同期、非同期 同一PGにて稼動
□投稿者/ リン -(2008/11/28(Fri) 15:31:06)

    分類:[C#] 

    初めまして、リンと申します。

    【環境】WindowsXP pro
    VS2005 C#

    伺いたい事がありまして、
    投稿させて頂きました。

    【相談内容】
    クライアント←→サーバの同期ソケット通信と非同期ソケット通信を
    サーバー側は、一つのPGで同時稼動は、出来るのでしょうか。
    ※サーバのポート番号は、同一の番号を使用します。


    【実際にやりたい事項】
    ・クライアント→サーバへのソケットの内容に応じて
     処理を変えるPGがある。

     そのPGに対して、クライアントからは
     パターン1(同期)とパターン2(非同期)でソケットが送られてくる。
     そのどちらでも処理対応したい。

    --------------------------------------------------------------
    同期ソケット通信、非同期ソケット通信は、
    下記サイトを参考に、各々別PGで作成出来ています。
    最悪は、二つを起動するしかないのかと考えています。

    http://msdn.microsoft.com/ja-jp/library/6y0e13d3(VS.80).aspx
    http://msdn.microsoft.com/ja-jp/library/fx6588te(VS.80).aspx
    --------------------------------------------------------------

    もし同時稼動が出来るのならば、
    どのような手法をとれば良いのかを
    教えて頂けないでしょうか。

    以上

    誠にすみませんが、
    ご教授のほどよろしくお願い致します。
親記事 /過去ログ52より / 関連記事表示
削除チェック/

■28834  Re[3]: コンボボックス
□投稿者/ 魔界の仮面弁士 -(2008/12/01(Mon) 23:21:34)
    No28829 (外郎 さん) に返信
    >>>> DisplayMember と ValueMember を使い分けて、見た目にはファイル名だけ表示しつつ、裏ではフルパスを保持
    >>> の実装例を教えていただくわけにはいかないでしょうか?
    >> 2列の値を持つコンボボックス[コード+値]
    >> http://www.bnote.net/vb/2col_combobox.shtml
    > イマイチ理解できませんでした。
    > 簡潔で構いませんので、使用例を示していただくわけにはいかないでしょうか?


    C# に書き換えてみました。これで分かりますか?

    // -------------------------------------------

    using FileItem = System.Collections.Generic.KeyValuePair<string, string>;

    // -------------------------------------------
    private void Form1_Load(object sender, EventArgs e)
    {
     comboBox1.DisplayMember = "Value";
     comboBox1.ValueMember = "Key";

     // ここではサンプルなので、固定的なパスを書いていますが
     // 実際には、FolderBrowserDialog のディレクトリから
     // 列挙した画像のパスを入れる事になるでしょう。
     List<FileItem> list = new List<FileItem>();
     list.Add(new FileItem(@"C:\Windows\シャボン.bmp", "シャボン.bmp"));
     list.Add(new FileItem(@"C:\Windows\珈琲カップ.bmp", "珈琲カップ.bmp"));
     list.Add(new FileItem(@"C:\Windows\隅田川.bmp", "隅田川.bmp"));

     comboBox1.DataSource = list.ToArray();
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
     // 実際には、ここが PictureBox への画像処理になるはず。
     label1.Text = comboBox1.SelectedValue.ToString();
    }
記事No.28783 のレス /過去ログ52より / 関連記事表示
削除チェック/

■28866  Re[7]: コンボボックス
□投稿者/ 魔界の仮面弁士 -(2008/12/02(Tue) 12:41:43)
    2008/12/02(Tue) 13:12:33 編集(投稿者)

    No28840 (外郎 さん) に返信
    > NullReferenceExceptionはハンドルされませんでした。

    そこまで分かれば、「どの操作に対してエラーが発生しているのか」を調べれば、対処法も見えてきます。
    No28843 でまんごーぷりんさんが書かれているようにして、エラー箇所を特定しましょう。

    > メソッドを呼び出す前に、オブジェクトがNullで良いかどうか確認してください。
    このエラーメッセージのとおり、「null かどうか」のチェックを行ってください。

    string path = comboBox1.SelectedValue as string;
    if (!string.IsNullOrEmpty(path))
    {
      label1.Text = path;
    }
    else
    {
      label1.Text = "選択されていません";
    }


    No28850 (まんごーぷりん さん) に返信
    > string filename = ((FileItem)(comboBox1.SelectedItem)).Key;
    それだと、comboBox1.SelectedIndex = -1; な場合には、やはり NullReferenceException になるかと。


    No28840 (外郎 さん) に返信
    > Image.FromStream(Stream)を使えば良いとありますが、
    > どのように使えば良いのでしょうか?
    検索すれば幾つもの具体例が見つかるので、あえて書かなかったのですけれどね…。(^^;
    (サンプルを複雑化すると読みにくくなるので)

    エラー対処も含めた読み込み例:

    //------------------------
    Image newImage = null;
    try
    {
      // ファイルをロックさせないよう、Image.FromStream で読み込み
      using (FileStream stm = new FileStream(path, FileMode.Open))
      {
        newImage = Image.FromStream(stm);
        stm.Close();
      }
    }
    catch
    {
      // 画像を読み込めなかった場合
      newImage = pictureBox1.ErrorImage;
      if (pictureBox1.ErrorImage != null)
      {
        newImage = (Image)pictureBox1.ErrorImage.Clone();
      }
    }
    finally
    {
      // 表示させる画像の差し替え
      Image oldImage = pictureBox1.Image;
      pictureBox1.Image = newImage;
      if (oldImage != null)
      {
        oldImage.Dispose();
      }
    }
記事No.28783 のレス /過去ログ52より / 関連記事表示
削除チェック/

■28811  Datagridviewの列の横軸展開
□投稿者/ オレンジネコ -(2008/12/01(Mon) 16:59:56)

    分類:[.NET 全般] 

    初めまして、オレンジネコと申します。

    ここの掲示板に私と同じ質問をされている方がいましたので、その方の表をお借りしました。
    ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=4064&KLOG=4

    開発環境:VB.net(2005pro)
    DB:postgresql(ver1.8.2)

    datagridview1
    サイズ | カラー | サイズno| カラーno
    -------------------------------------
    1/1  | A  | 1 | 1’
    1/2  | B  | 2 | 2’
    1/2  | A  | 3 | 3’
    1/3  | C  | 4 | 4’
    1/4  | A  | 5 | 5’
    1/4  | C  | 6 | 6’

    ↑上記を↓下記のように行いたいのです。

    サイズ\カラー| A | B | C |
    -------------------------------
    1/1    | 1 1’| | |
    1/2 | 3 3' | 2 2' | |
    1/3 | | | 4 4’|
    1/4 | 5 5’| | 6 6’|

    何か手段はありませんでしょうか?

    色々と自分なりに調べたりしたのですが、参考になるような内容のものが
    なかったので質問させて頂きました。

    宜しくお願い致します。

親記事 /過去ログ52より / 関連記事表示
削除チェック/

■28815  Re[1]: Datagridviewの列の横軸展開
□投稿者/ みきぬ -(2008/12/01(Mon) 17:33:16)
    とりあえず、素朴な方法をば。
    
    1. こんな DataTable をこさえておく。
    
    サイズ\カラー| Aサイズ| Aカラー | Bサイズ| Bカラー | Cサイズ| Cカラー 
    --------------------------------------------------
    1/1    |      |      |      |      |      |
    1/2      |      |      |      |      |      |
    1/3      |      |      |      |      |      |
    1/4      |      |      |      |      |      |
    
    2. ↓のレコードを1件ずつ、↑の DataTable にあてはめていく。
    
    サイズ | カラー | サイズno| カラーno
    -------------------------------------
    1/1   |  A    |  1      | 1’
    1/2   |  B    |  2      | 2’
    1/2   |  A    |  3      | 3’
    1/3   |  C    |  4      | 4’
    1/4   |  A    |  5      | 5’
    1/4   |  C    |  6      | 6’
    
記事No.28811 のレス /過去ログ52より / 関連記事表示
削除チェック/

■28851  Re[2]: Datagridviewの列の横軸展開
□投稿者/ オレンジネコ -(2008/12/02(Tue) 09:29:51)
    No28815 (みきぬ さん) に返信

    返信ありがとうございます。

    テーブルはすでに作成していてデータも入ってしまっているので
    テーブルの仕様変更という形は最終手段にしたいと考えています…。

    それとわかりにくいですね・・すみません。
    通常、レコードは縦に表示されますよね。
    それを横に表示されていくようにしたいのです。

    ↓通常のdatagridview
    サイズ | カラー |
    -----------------
    1/1  | A  |
    1/2  | B  |
    1/2  | A  |
    1/3  | C  |
    1/4  | A  |
    1/4  | C  |


    ↓横に展開させたい。
    サイズ\カラー| A | B | C |
    -------------------------------
    1/1    |
    1/2 |
    1/3 |
    1/4 |

    VB側でなんとかなりませんでしょうか?
記事No.28811 のレス /過去ログ52より / 関連記事表示
削除チェック/

■28906  Re[5]: Datagridviewの列の横軸展開
□投稿者/ オレンジネコ -(2008/12/02(Tue) 16:21:00)
    みなさんありがとうございます。
    おかげさまでなんとか横表示はできました。
    ですが縦の列がうまくできませんでした…
    
    現在の状況
    datagridview
       |カラー1|カラー2|カラー3|カラー4|…
    ------------------------------------------------
       |  赤 |  白 | 黄  |  茶 |
    ------------------------------------------------
       |    |    |    |    |
    ------------------------------------------------
    
    ↑これを↓このようにできたらいいと思っています。
    
        |カラー1|カラー2|カラー3|カラー4|…
    ------------------------------------------------
    サイズ1|  赤 |  白 | 黄  |  茶 |
    ------------------------------------------------
    サイズ2|    |    |    |    |
    ------------------------------------------------
    
    以下に今現在のコードを乗せておきます。
    
    Dim aatable As New Data.DataTable
            aatable.Columns.Add("カラー1")
            aatable.Columns.Add("カラー2")
            aatable.Columns.Add("カラー3")
            aatable.Columns.Add("カラー4")
            aatable.Columns.Add("カラー5")
    
    Dim aarow2 As Data.DataRow
            aarow2 = aatable.NewRow
            aarow2.Item(0) = TestDataSet.Tables(0).Rows(0).Item("testcolor")
            aarow2.Item(1) = TestDataSet.Tables(0).Rows(1).Item("testcolor")
            aarow2.Item(2) = TestDataSet.Tables(0).Rows(2).Item("testcolor")
            aarow2.Item(3) = TestDataSet.Tables(0).Rows(3).Item("testcolor")
            aarow2.Item(4) = TestDataSet.Tables(0).Rows(4).Item("testcolor")
    
    aatable.Rows.Add(aarow2)
            Me.DataGridView1.DataSource = aatable
    
    よろしくお願いします。
記事No.28811 のレス /過去ログ52より / 関連記事表示
削除チェック/

■28952  Re[1]: 和暦表示
□投稿者/ 魔界の仮面弁士 -(2008/12/02(Tue) 22:49:50)
    2008/12/02(Tue) 22:56:35 編集(投稿者)

    No28943 (ちん さん) に返信
    > 和暦変換をしたくてサイトを調べていたんですが、

    簡単なのは、"Microsoft.VisualBasic.Compatibility" を参照設定して、
     'Imports Microsoft.VisualBasic.Compatibility.VB6
     Dim s As String = Support.Format(dt, "gee年MM月dd日")
    かな。

    -----
    追記修正。上記だと、Format 関数等が競合してしまうので、

     'Imports Microsoft.VisualBasic.Compatibility
     Dim s As String = VB6.Format(dt, "gee年MM月dd日")

    の方が良いかも。
    -----


    追加の参照設定無しで行うとなると、下記のように長いコードに…。

    'Imports System.Globalization

    Function ToShortWareki(ByVal dt As Date) As String
      Dim jc As New JapaneseCalendar()
      Dim ci As New CultureInfo("ja-JP", True)
      ci.DateTimeFormat.Calendar = jc
      If dt < jc.MinSupportedDateTime OrElse dt > jc.MaxSupportedDateTime Then
        Return dt.ToString("yyyy年MM月dd日", New CultureInfo("ja-JP", True))
      Else
        Return "MTSH"(jc.GetEra(dt) - 1) & dt.ToString("yy年MM月dd日", ci)
      End If
    End Function

    Function ToLongWareki(ByVal dt As Date) As String
      Dim jc As New JapaneseCalendar()
      Dim ci As New CultureInfo("ja-JP", True)
      ci.DateTimeFormat.Calendar = jc
      If dt < jc.MinSupportedDateTime OrElse dt > jc.MaxSupportedDateTime Then
        Return dt.ToString("yyyy年MM月dd日", New CultureInfo("ja-JP", True))
      Else
        If jc.GetYear(dt) = 1 Then
          Return dt.ToString("gg元年MM月dd日", ci)
        Else
          Return dt.ToString("ggyy年MM月dd日", ci)
        End If
      End If
    End Function

    実際に使う際は、作成するアプリの仕様に応じて、MM 書式と M 書式の
    どちらにするのか、「元年」の表記を行うかどうかなどの修正が必要かも。
記事No.28943 のレス /過去ログ52より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>

ヒット件数が多いので過去ログ50〜66 までの検索結果 / 過去ログ67からさらに検索→

パスワード/

- Child Tree -