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

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

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

全過去ログを検索

<< 0 >>
■1698  Re[5]: VB.NETの今後について
□投稿者/ ぽぴ王子 -(2007/03/03(Sat) 09:35:06)
>
    > これからVB.NETはどうなるでしょうか?
    > あまり使われなくなるのでしょうか?

    知らない。というか、どうなるかは誰にも予測がつかないのではないでしょうかね。
    今は知らないけれど、今後 VB.NET が .NET の主流になることもあるかもしれないし
    (今でも主流?)全然別の言語が出てくることもあるかもしれないとは思いますが、
    Microsoft 的には VB は VB として残そうとするのではないか、ぐらいしか。

    > 何故、VB.NETよりC#.NET等の他の言語を推すのでしょうか?

    単に C# が好きな人が(この掲示板では)多いということかと。
    言語にはそれぞれ好みもあるし、VB.NET の好きな人が多い場所で質問をすれば
    VB.NET を勧める人の方が多いかもしれません。ただそれだけのことだと思います。


    > 旧バージョンからの移行が楽なようにとの配慮が裏目に出た。ってヤツでしょうかねぇ…

    結果的に旧バージョンからの移行組が一番苦労しているんじゃないかと思ってたり
    するのですが、どうでしょうかね。憶測で書いてるところなので、これは実際の移行組
    の方々の意見を聞きたいところではありますが。

    僕自身も VB6 はバリバリ使っていましたが、VB.NET は VB6 の常識(と思われている
    部分)がなかなか通用しない言語なのではないかと考えています。確かに C# なんか
    に比べると移行はしやすいというか配慮されているとは思うんですが、そこで中途半端
    な配慮のせいで .NET というかオブジェクト指向的なものに慣れられないまま .NET に
    移行せざるを得ない人たちが苦労しているのかなあ、と思ったりしているです。

    自分は VB よりは C# が好きというところもありますが、そういった部分を考えると、これ
    から .NET でプログラミングをするという人に勧めるとしたら C# かなあ、という感じですね。
    逆に「それでも VB.NET がいいよ!」という方もいらっしゃいますし、どちらが正しいという
    ものでもないと思っていますが。
    (なんかうまい具合にまとまった、と思っている)
記事No.1682 のレス /過去ログ10より / 関連記事表示
削除チェック/

■9189  Re[6]: C#からVC6DLLに構造体のchar[]を渡す
□投稿者/ mあ -(2007/10/20(Sat) 21:08:21)
    No9179 (渋木宏明(ひどり) さん) に返信
    >>これですね。
    > >>Test* GetTest() { Test *t = new Test; t.b = 32; return t; }
    > >
    >>まあ DLL 側に FreeTest とかがなかったらどのみち無理ですが。
    >
    > C++ で new したブツを返しちゃってるから、C++ で解放する手段を用意しないとだめですね。
    >
    >

    こちらの勉強にまで意見していただきありがとうございます。m(__)m
    ポインタ返す場合には、PtrToStruct 使えるのですよね。って逆質問しているあたり全然試して
    いないのが現状だったりするのですがw

    とりあえず、MSDNは見るのはいいですが理解しにくい部分も多々あるので
    ちゃんとした日本語に意訳してもらえるだけでもありがたく感じています。



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

■19333  Re[3]: ファイルのコピーができません
□投稿者/ よねKEN -(2008/05/22(Thu) 13:00:21)
    闇雲に書き換えるのではなく、自分の書いているコードの意味を理解するようにした方がよいと思います。
    (他の方のご指摘と重複しますが)気になる点を書いてみます。

    > '構造体
    > <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi, Pack:=1)> _
    <StructLayout(LayoutKind.Sequential, CharSet:=.Unicode, Pack:=1)> _

    > Private Structure SHFILEOPSTRUCT
    > Dim hwnd As IntPtr
    > Dim wFunc As Integer
    > Dim pFrom As String
    > Dim pTo As String
    > Dim fFlags As Short
    > Dim fAnyOperationsAborted As Boolean
    > Dim hNameMappings As IntPtr
    > Dim lpszProgressTitle As String
    > End Structure
    >
    > '使用個所
    > Dim udtFileOp As SHFILEOPSTRUCT
    >
    > '' 構造体の設定
    > With udtFileOp
    > .fFlags = mlngOperationFlg
    > .hwnd = mlngTarget
    > .pFrom = Marshal.StringToCoTaskMemUni(strFrom)

    .pFrom = strFrom & ControlChars.NullChar & ControlChars.NullChar

    > .pTo = Marshal.StringToCoTaskMemUni(strTo)

    .pTo = strTo & ControlChars.NullChar & ControlChars.NullChar

    > .wFunc = lngFunc
    > End With
    > Ret = Not CBool(SHFileOperation(udtFileOp))

    これでうまく行きそうな気はしますが、ご提供いただいている情報が不足しているため、
    本当にうまくいくかどうかはわかりません。
    仮にうまく行ったとして、意味は理解してくださいね。

    No19294No19330の魔界の仮面弁士さんのご指摘にあることですが、

    No19330
    > 最後に、先ほどと同じ
    >>> それぞれのメンバには、具体的にはどういった値を設定しているのでしょうか。
    >を繰り返し書いておきます。定数宣言がどうなっているのかなども気になるので。

    こちらについて情報を提供してください。
    ここを明らかにすれば答えに一歩近づくと思います。

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

■20136  Re[7]: デスマーチプロジェクトの立て直し・防止について
□投稿者/ ネタ好き -(2008/06/06(Fri) 14:07:01)
    しまった、立て直しについては何も書いていなかったw
    それはずばり、「プロジェクトマネージャを変える」事だと思います。
    マネージャが駄目ならば何人投入しても、どんなハッカーを投入しても恐らく駄目です。
    マネージャを変えて、おまけに余計な人も削り、画面・データ・機能・テストを分割するのはもちろんの事、「絶対に必要な要件」を洗い出して、そこへ信頼できるプログラマを投入するのが良いかと思います。
    あとは、新くて度胸と能力のあるマネージャに必要な権限を与えて、現在の状況の概要をキーとなる少数の人達とともにレビューして、プロジェクト進行度が誰の目にも明らかな状態にするのがよいと思います。
記事No.20108 のレス /過去ログ39より / 関連記事表示
削除チェック/

■28821  Re[3]: セル単位でのcellstyleの変更について
□投稿者/ 魔界の仮面弁士 -(2008/12/01(Mon) 19:42:49)
    2008/12/01(Mon) 19:49:21 編集(投稿者)

    # 長文失礼。

    No28814 (見習いPG さん) に返信
    > DataGridViewCellStyleクラスでは、"行"や"列"また"セル"に
    他にも、"奇数行" などの設定もありますね。また、ヘッダ部/データ部のセルの違いもあります。


    > 設定される値は独立していて、
    独立しているというか、透過関係にあります。
    HTML でいうところのスタイルシートの関係に近いかな。


    文章で説明しにくいので…他の物に喩えさせてください。

    新規プロジェクトを作成し、Form1 の上に GroupBox を 1 つ貼ってみてください。
    そしてその上に、Panel を 2 つ貼ります。

    階層関係としては、このような配置となります。

    Form1
    └groupBox1
     ├panel1
     └panel2

    # 以下の説明は、文章で読むと分かりにくいと思うので、
    # できれば、実際に開発環境で操作しながら読んでみてください。(^^;


    さて、Form1 の BackColor は、既定で "Control" です。
    そのため、各コントロールの背景色も、"Control" になっており、
    かつ、それらのプロパティは『細字』で表現されています。

    ここで、groupBox1 の BackColor を "Yellow" に変更してみてください。
    groupBox1 の BackColor プロパティが『太字』で表現されますね。

    この時、2 枚の Panel の BackColor もまた、"Yellow" になっています。
    しかし、BackColor そのものは『細字』のままであるはずです。


    そしてここで、panel2 の方の BackColor に、別の色(例えば "Red")を設定します。
    panel2 の BackColor が『太字』に変わるので、再度 "Yellow" を選択しなおします。

    このようにすると、それぞれの Panel の BackColor は、
     panel1 … 『細字』の "Yellow"
     panel2 … 『太字』の "Yellow"
    となります。どちらも同じ色ですが、一方は「太字」で表記されていますね。

    そしてここで、groupBox1 の BackColor を "Blue" にするとどうなるでしょう。
     panel1 … 『細字』の "Blue"
     panel2 … 『太字』の "Yellow"
    になるはずです。
    panel1 は親の値を引き継ぎますが、panel2 は "Yellow" のままです。

    そしてさらに、groupBox1 の BackColor を右クリックして、[リセット]を選択します。
    すると panel1 が、親の親であるフォームの設定色に戻り、
     panel1 … 『細字』の "Control"
     panel2 … 『太字』の "Yellow"
    という結果に変わります。

    ------------------------------------------------------

    これと同じことが、DataGridView のスタイル設定にも言えます。

    Style プロパティに null をセットすると、セルのスタイルはクリアされ、
    HasStyle = false の状態になります。この場合、そのセルのスタイルは
    上位要素(行やグリッド本体など)の設定が使って処理される事になります。

    また、セルに個別のスタイルが割り当てられていた場合であっても、
     .Alignment = DataGridViewContentAlignment.NotSet
     .Font = null
     .BackColor = Color.Empty
    などが割り当てられていれば、フォントや背景色など、個々のメンバだけが
    上位要素の書式を引き継ぐ事になります。

    そして、その引き継いだ値を得るのが、先のサンプルでも利用した
    InheritedStyle プロパティ(読取専用)となります。


    > 対象の"セル・行・列"の状態を保ったまま変更したいのであれば、
    この場合、この「変更」という行為が、それぞれのスタイルに対して
    「設定のリセット」なのか「新しい設定の割り当て」なのかを見直し、
    かつ、それがセル/行/奇数行/列/グリッド全体など、どの要素に対して
    行おうとしているのかを意識するようにしてみてください。

    それらを意識した上で、元々の質問 No28699
    > セル単位での初期の状態を設定したいのですが
    を考えてみると、修正すべき箇所が見えてくるかと思いますよ。


    > MS公式を見てみましたが、あまり理解できず
    見落とされがちな点があるので、もう少し書かせてください:

    セルのスタイルが未設定(null)の時に、Style プロパティを参照すると、
    その場で新たなスタイルが割り当てられてしまう点に気をつけてください。

     Console.WriteLine(dataGridView1[1, 1].HasStyle); // この時点で false だとしても、
     Console.WriteLine(dataGridView1[1, 1].Style) ; // ここで Style を取得してしまうと
     Console.WriteLine(dataGridView1[1, 1].HasStyle); // この時点で true に変化してしまう。


    スタイル設定の増加はパフォーマンスに影響を与えますので、セル数が多い場合は注意してください。
    たとえば、先の No28705 にも
    >> 現在の設定値を確認する目的であれば、いきなり .Style.Font を参照するのは NG です。
    と書いたように
     if ( dataGridView1[col, row].Style.Font == null )
    のような判定は、できる限り避けるようにする必要があります。設定値の確認には、
    InheritedStyle プロパティや HasStyle プロパティを使うようにしましょう。


    また、各セルに対するスタイル設定を共有することも検討してみてください。
    たとえば、こんな感じで…。

    DataGridViewCellStyle blackStyle = new DataGridViewCellStyle();
    DataGridViewCellStyle greenStyle = new DataGridViewCellStyle();
    private void Form1_Load(object sender, EventArgs e)
    {
     blackStyle.BackColor = blackStyle.SelectionBackColor = Color.Black;
     greenStyle.BackColor = greenStyle.SelectionBackColor = Color.Green;

     dataGridView1.AllowUserToAddRows = false;
     dataGridView1.RowCount = 4;
     dataGridView1.ColumnCount = 4;

     dataGridView1[1, 1].Style = dataGridView1[2, 2].Style = blackStyle;
     dataGridView1[2, 1].Style = dataGridView1[1, 2].Style = greenStyle;
    }

    private void button1_Click(object sender, EventArgs e)
    {
     greenStyle.BackColor = Color.YellowGreen;
     dataGridView1.Invalidate();
    }
記事No.28699 のレス /過去ログ52より / 関連記事表示
削除チェック/

■29442  Re[2]: dequeから文字列作成
□投稿者/ ナツ -(2008/12/09(Tue) 20:17:59)
    No29440 (Jitta on the way さん) に返信

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


    > 関数作れば?

    すいません、初心者なもので、関数のロジックが思いつきません。

    考えてみても、関数を作ってもけっきょくその関数内でループしてしまいます。

    ヒントだけでもいただけないでしょうか?
記事No.29439 のレス /過去ログ53より / 関連記事表示
削除チェック/

■29444  Re[3]: dequeから文字列作成
□投稿者/ .SHO -(2008/12/09(Tue) 20:25:22)
    No29442 (ナツ さん) に返信

    > さらにそれを何回も繰り返す為、できればループは避けたいです。

    なんのために避けたいのですか?

    > 考えてみても、関数を作ってもけっきょくその関数内でループしてしまいます。

    呼び出し側が何個あろうが、関数内のループ1個で済むということだと思います。
記事No.29439 のレス /過去ログ53より / 関連記事表示
削除チェック/

■29441  Re[1]: プログラム開発作業のPCについて
□投稿者/ Jitta on the way -(2008/12/09(Tue) 20:14:05)
    No29438 (ANTE さん) に返信
    > お世話になります。
    >
    > 現在、会社で使用しているPCのリース変更の時期なのですが、私一人のみ
    >
    > 対象を以下の2つに絞り込みました。

    それが許されること、なんですね?



    > ☆ポイント
    > ・基本的にVisual StudioのVB.NET VB6とかで開発を行います。(要はPGM開発作業を行うに当たっての要件を満たしているか)

    あなたが、
    PGM開発作業(PGMってなに?)にあたって、何を望んでいるか。あなたの職場で多く扱われている開発対象物について、どの様なことが求められるか。
    それらが判らない人に尋ねて、あなたにとって本当に必要なことが返ってくるとは思えないのですが、いかがでしょう?



    > ・上記を使用している方がいらっしゃれば、その使い心地等

    使い心地も、何に重きを置くか、ではないでしょうか。「キータッチだ」という人は、別途キーボードを用意するでしょう。「発色の良さだ」という人は、グラフィックボードとディスプレイを別途用意するでしょう。「何よりレスポンス」って人は、メモリを多くしたり、ハードディスクを換装するかも知れません。

    迷うのはわかるのですが、「これ!」ってものを特定して頂かないと、ねぇ?
記事No.29438 のレス /過去ログ53より / 関連記事表示
削除チェック/

■29443  UDP非同期通信について
□投稿者/ フミ -(2008/12/09(Tue) 20:24:24)

    分類:[C#] 

    毎度お世話になります。
    フミと申します。

    C#にてUDPによる非同期通信を行っています。
    通信をやめるためにUdpClientを閉じたところ、
    コールバック内で例外が発生してしまい困っています。

    ウィンドウズのフォームにボタンが2つあり、
    ボタン1を押すとUDPの受信待ち(udpclient.BeginReceive)、
    ボタン2を押すとUDPのソケットをクローズ(udpclient.Close)します。

    受信はうまくいくのですが、
    受信が終わって、ボタン2を押しクローズしようとすると、
    非同期受信のコールバック内でエラーが発生します。

    エラー内容は

        「破棄されたオブジェクトにアクセスできません。
         オブジェクト名 'System.Net.Sockets.UdpClient' です。」

    と表示されます。

    コールバックで使うのに先にクローズでUdpClientが破棄されてしまうためだと思われるのですが、
    何かプログラムに誤りあるいは対処法ありますでしょうか??


    以下、用いたプログラムです。

    //WindowsForm
    public partial class Form1 : Form
    {
    //UDP Client
    UdpStateClass usc;

    //受信データ
    byte[] receiveData;

    //コンストラクタ
    public Form1()
    {
    InitializeComponent();
    }

    //ボタン1クリック イベント
    private void button1_Click(object sender, EventArgs e)
    {
    //UDPStateクラスのインスタンス
    usc = new UdpStateClass();

    //エンドポイントとUDPクライアントを入れます
    usc.endPnt = new IPEndPoint(IPAddress.Any, 44444);
    usc.udpClt = new UdpClient(44444);

    //UDPの非同期受信開始 コールバックはreceiveCallback
    usc.udpClt.BeginReceive(new AsyncCallback(receiveCallback), usc);
    }

    //ボタン2クリック イベント
    private void button2_Click(object sender, EventArgs e)
    {
    //ソケットを閉じる
    usc.udpClt.Close();
    }

    //コールバック
    public void receiveCallback(IAsyncResult ar)
    {
    //IAsysncResultからUDPClientとIPEndPointを受け取る
    UdpClient uc = ((UdpStateClass)(ar.AsyncState)).udpClt;
    IPEndPoint iep = ((UdpStateClass)(ar.AsyncState)).endPnt;

    //受信データを配列に格納
    receiveData = uc.EndReceive(ar, ref iep);
    /* ↑ボタン2を押しcloseすると上の行でエラー発生
    * 「破棄されたオブジェクトにアクセスできません。
    *  オブジェクト名 'System.Net.Sockets.UdpClient' です。」
    */
    }
    }

    //UDPStateクラス
    public class UdpStateClass
    {
    public IPEndPoint endPnt;
    public UdpClient udpClt;
    }
親記事 /過去ログ53より / 関連記事表示
削除チェック/

■29703  Re[3]: Panelに配置されたコントロールの背景色
□投稿者/ よねKEN -(2008/12/12(Fri) 14:53:11)
    >>コントロールに個別にBackColorを設定するのではダメなんですか?
    >
    > デザイン時に指定ではだめです。
    > コンパイルしなおすとPanelのBackColorが反映されてしまいます。

    普通はそんなことにはならないはずです。

    > Panelに配置されたコントロールはPanelの背景色を変更(デザイン時)した場合、中に配置されたコントロールも同じ背景色に変更されますが、

    あるコントロールAのBackColorが明示的に設定されていない場合、
    そのコントロールの親コントロールのBackColorと同じ色で表示されます。
    ですので、プロパティウィンドウでコントロールAのBackColorプロパティを明示的に色を指定すればその色になります。

    この辺の話は、
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=28699
    のスレの No28821 での魔界の仮面弁士さんの回答でわかりやすく説明されています。
記事No.29690 のレス /過去ログ54より / 関連記事表示
削除チェック/

■29709  Re[4]: Panelに配置されたコントロールの背景色
□投稿者/ よう -(2008/12/12(Fri) 16:10:30)
>
    よねKENさん、ありがとうございます。

    > あるコントロールAのBackColorが明示的に設定されていない場合、
    > そのコントロールの親コントロールのBackColorと同じ色で表示されます。
    > ですので、プロパティウィンドウでコントロールAのBackColorプロパティを明示的に色を指定すればその色になります。
    >
    > この辺の話は、
    > http://bbs.wankuma.com/index.cgi?mode=al2&namber=28699
    > のスレの No28821 での魔界の仮面弁士さんの回答でわかりやすく説明されています。

    なるほど。他の.NETのコントロールでは確かにそのようになっていますね。
    UserControlを継承してカスタムコントロールを作っているのですが、そのコントロールがデザイン時の設定値を覚えてくれていないようです。
    BackColorについては描画するときに参照はしていますが、変更などはしていません。
    この問題について何か情報がありましたら、また教えていただけると助かります。

    よろしくお願いします。
記事No.29690 のレス /過去ログ54より / 関連記事表示
削除チェック/

■46551  Re[2]: Windows Vista 外字エディタ
□投稿者/ JJ -(2010/02/05(Fri) 09:13:41)
    No46543 (やじゅ さん) に返信
    > ■No46514 (JJ さん) に返信
    >>この一連の流れをコマンドプロンプトで書きたいのですが、どのように書いたら
    >>いいのでしょうか?
    >
    > 操作を自動化したいという目的でのコマンドプロンプトであれば、
    > 「UWSC」という自動操作ツールを使うという手もあります。
    >
    > コマンドプロンプトにこだわるなら、
    > WHSを使って、キー・ストロークの送信:SendKeysメソッド
    > http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html
    >
記事No.46514 のレス / END /過去ログ79より / 関連記事表示
削除チェック/

■50227  Re[4]: Ajaxについて
□投稿者/ コマ -(2010/05/31(Mon) 15:43:33)
    No50226 (みきぬ さん) に返信
    >>どうすればいいでしょうか?
    >
    > まずはその、ものすっごい漠然とした質問をどうにかするといいのでは。

    そうだね。言い方少しひどいかも・・・

    で、書きなおすと。

    updatepanelの中に、画像を表示するところがあります。
    そのパネルの外にボタンがあります。
    ボタンを押したときにどうすれば、updatepanelの中身が更新されますか?
記事No.50210 のレス /過去ログ84より / 関連記事表示
削除チェック/

■84041  Re[3]: C#のウィンドウズ画面で文字の下半分が消える
□投稿者/ くまさん -(2017/05/11(Thu) 00:07:01)
    すいません。自己解決しました。
    falseをtrueに変えればすべて解決なのですね。

    大変助かりました。
    またご教授頂けたら助かります。
    Azuleanさんありがとうございました。

    No84040 (くまさん さん) に返信
    >
    > Azulean さん
    >
    > コードを追加してみたところ綺麗に表示されました。
    > ご教授ありがとうございました。
    >
    > 疑問があってこのようなウィンドウズ画面ではデフォルトでAzuleanさんに教えて頂いた形式にすることはできないのかということと
    > 文字が途中で改行されるのもコードを追加すれば「こんにちわこんにちわ」と一文にできるのでしょうか?
    >
    > お手数ですがご教授頂けると助かります。
    >
    > ■No84039 (Azulean さん) に返信
    >>2017/05/10(Wed) 23:38:43 編集(投稿者)
    >>
    >>■No84038 (くまさん さん) に返信
    > >>2段目のにちわという文字の下半分が消えてしまいます。
    >>
    >>Label を新規に作成した場合、AutoSize(Text プロパティなどに応じて自動サイズ調整する)が false(無効)、サイズが 100×23 ぐらいになっています。
    >>おそらく、ラベルの高さが足りずに欠けているのでしょうから、lb.Text への代入文の次の行ぐらいに、lb.Height = 100; とかコードに追加すれば解決するかと。
    >>
    >>(100 はおおざっぱに置いているので必要に応じて数値を調整してください)
記事No.84038 のレス / END /過去ログ143より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -