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

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

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

全過去ログを検索

<< 0 >>
■7611  Re[5]: フォームの表示方法
□投稿者/ れい -(2007/09/11(Tue) 15:14:09)
    No7606 (arion さん) に返信
    > >■No7597 (れい さん) に返信
    > しかし自分で調べてみたのですがまだいまいち理解できません。
    > レイヤードウィンドウとはフォームを半透明とか透明にするものですよね?

    いいえ。
    それだけではありません。
    様々な形状の物をデスクトップに表示したり、
    それを動かしたり、そういったことができる仕組みのことです。

    >>レイヤードウィンドウ1個で済ませるのがいいでしょう。
    > ということは作成するフォームは1つでよいということでしょうか?

    はい。
    レイヤードウィンドウなフォーム一つで大丈夫です。

    > 最初その作成したフォームを透明にしておいて領域を出たらそこのアイコンだけを表示させるということでしょうか?

    「透明にしておく」というのはちょっと違いますね。
    レイヤードウィンドウは何もしなければもともと全て透明、というか、何も表示されません。
    (枠くらいは表示されたかな?)

    「デスクトップと同じサイズの透明なビットマップに描く」というイメージですね。
    そのビットマップはOSが管理してくれて、画面に自動で描画されます。
    ですので、他の窓に隠されたりした場合の再描画は要りません。

    描画方法が全然違うので、ButtonやTextBox、TreeViewなどはうまくやらないと動きません。
    今回はそういったコントロールは必要ないですよね?

    表示内容を変えたいとき、ウィンドウの外形を変えたいときに
    画面に実際に表示したい内容のビットマップを作成し、
    UpdateLayeredWindowに渡せばいいだけです。
    透明色で塗られている場所は、実際に透明として出力され、
    マウスのイベントなどもきちんと下の窓に伝わります。
記事No.7596 のレス /過去ログ20より / 関連記事表示
削除チェック/

■8515  Re[1]: MouseWheelイベントで移動量を無視する方法について
□投稿者/ mあ -(2007/10/01(Mon) 23:44:26)
    2007/10/02(Tue) 00:40:49 編集(投稿者)
    2007/10/02(Tue) 00:27:14 編集(投稿者)
    2007/10/02(Tue) 00:18:11 編集(投稿者)
    2007/10/02(Tue) 00:13:21 編集(投稿者)

    んー、チカチカする VB ソースでよければ載せるが・・・

    ホイールの終了をどうやって判定するか、だね。
    ホイールの開始は Event#Wheel で取れますね。
    デルタは、MouseEventArgs#Delta で取れます。

    NumericUpDown#Increment = 0.01 ってやれば、ホイール3周くらいやらないと
    ±1加算すら出来ないようになります。上下キー入力とマウスクリックで反応
    が鈍くなるのでここらへんがポイントですね。タイマーイベントでホイールが
    無かったことにするように修正してみたらどーでしょう?
    で、タイマーのタイムアウトがホイールの終了(切れ目)ということになります。
    従って、かなりシビアに設定しないと、タイマーが終わる前に再びタイマーを
    起動してしまうことになりますが、まぁ、こちらのテストだと、100ms くらいの
    設定ならば、ホイールに足乗っけてズリズリ前後に滑らせてもちゃんとホイール
    移動量を無視して±1が達成できています。

    がんばってください。


    微妙な書き換えが見えてしまうのを避けるには、、、、
    うーん、 UpDownBase#UpdateEditText() をオーバーライドするのが一番手っ取り早い
    のだと思っているだが、中々てこずりますな・・・

    我が家のちっこいマウスだと100ms タイマー(ホイールイベント発生毎にstop/start
    繰り返す)で、7回ホイールイベントが来ることが分かっています。
    ホイールの分解性能が関わってくるので、ホイール1クリックあたりの分解能力に
    よっては、イベントがもっと多くくる可能性もあります。イベントが一杯発生する
    ことはつまり、処理が重くなるわけですから、1回のイベント処理も最小工数で
    まかなうようにしなければなりません。こちらのテストでは足し算引き算が10行く
    らいですが。
    ホイールを回すとカクカクいうでしょ、あれの「1カク」がイベント1回です。
    ちっこいマウスなので、ホイールもちっこいです。でっかいマウスだと、ホイール
    もでっかいので、ギヤの歯数が多くなれば、見えてる部分の1コスリ分での「カクカク」
    が増えることになります。まぁ、なんぼでかいって言っても・・・
    トラックボールだと・・・デッドロックも考えられます。


    # 人差し指をホイール先端に乗っけて、手前一杯までなぞったときのイベント発生回数
    # です。

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

■39092  Re[7]: OracleDataReaderで
□投稿者/ επιστημη -(2009/07/30(Thu) 09:08:15)
>
    2009/07/30(Thu) 09:08:59 編集(投稿者)

    > 処理が通っているかどうか確認してみたら
    > やっぱり通ってませんでした…。

    while (myRead.Read()) {
     この中に飛び込んでないってことですか?
     明らかに通るであろうSQL(たとえば "SELECT * FROM XXX" とか)
     を実行して試してみました?
    }

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

■39554  Re[2]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ もりお -(2009/08/10(Mon) 22:54:55)
    No39553 (やじゅ さん) に返信
    > ■No39550 (sanae さん) に返信
    >>DateTime型で「10th Aug 2009」と表示するには、
    >>どのように書式をフォーマットすればよいでしょう?
    >>
    >
    > "th"はやり方が分からなかったので、"?"を文字列置換で対処しました。
    > MessageBox.Show(DateTime.Now.ToString("dd? MMM yyyy", new System.Globalization.CultureInfo("en-US")).Replace("?","th"));

    これでも出来るみたいです。
    DateTime.Now.ToString("dd'th' MMM yyyy", DateTimeFormatInfo.InvariantInfo)

    参考
    http://msdn.microsoft.com/ja-jp/library/k494fzbf(VS.80).aspx

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

■55436  Re[2]: DataGridViewの内容を使ってグラフの作成をするには
□投稿者/ daibo -(2010/12/02(Thu) 09:30:44)
    No55428 (ごう さん) に返信
    > ■No55424 (daibo さん) に返信
    > 
    > まず、文字化けの原因になりますので、「半角カナ」の使用は避けるようにしてくださいね。
    > (入力フォーム上部の注意事項に記載されています。)
    > 
    > また、ソースコードを提示するときは、投稿モードの「図表モード」にすると
    > 非常に見やすくなります。
    > 
    > で、本題です。
    > 
    >>次にその内容をグラフに描画したいのですが、どの用にcsvファイルの内容を取得して良いのか分かりません。dataGridViewに表示するときに用いたDataTableを使うべきなのか、それとも別によい方法があるのか...私ではどのようにすることがベストなのか分かりません。
    > 
    > 私なら、DataTableをそのまま使っちゃいます。
    > 
    >>[補足]
    >>csvファイルは365行5列のものでその2列目と4列目の内容でグラフを作成するつもりです。分かりづらくてすいません。
    > 
    > ソースコード見ましたけど、以下の項目についてこちらから質問です。
    > 補足してください。
    > 
    > 1. ZedGraphコントロールを使用しているように見えますが、それで合っていますか?
    >   (Visual Studioが用意していない、ヨソ様のコントロールを使用するときはその旨明記してくださいね)
    > 2. B列とD列の内容で「折れ線グラフ」を作りたいわけですね?折れ線は何本用意しますか? 2本?
    > 3. グラフの縦軸には何を表示しますか?
    > 4. グラフの横軸には何を表示しますか?
    > 
    > 願わくば、1〜4の質問の答えを考えているうちに自然と答えに近づいてきているといいですが…。
    > 
    > こちらからもヒント
    > 
    >>/*            double x, y1, y2;
    >>            PointPairList list1 = new PointPairList();
    >>            PointPairList list2 = new PointPairList();
    >>            for (int i = 0; i < 36; i++)
    >>            {
    >>                x = (double)i + 5;
    >>                y1 = 1.5 + Math.Sin((double)i * 0.2);
    >>                y2 = 3.0 * (1.5 + Math.Sin((double)i * 0.2));
    >>                list1.Add(x, y1);
    >>                list2.Add(x, y2);
    >>            }*/
    > 
    > PointParList クラスの、Addメソッドの引数を確認しましょう。
    > 1つめには、x軸で表現したい数値、
    > 2つめには、y軸で表現したい数値が入ります。
    > 
    > 参考(おそらくここを参考にしている?):
    > http://www.atmarkit.co.jp/fdotnet/vblab/extcompo_02/zedgraph_02.html
    
    大変失礼しました。今後気をつけたいと思います。
    大変初歩的な質問なのですが、
    > 私なら、DataTableをそのまま使っちゃいます。
    とありますが、どのような記述をすればよいでしょうか?
    csvファイルの2列目が時間、4列目が乱数で構成されていてそれを2次元配列にしてfor文に組み込みたいのですが、記述が分からないので
    できればご教授して頂きたく思います。
    また、上記1〜4についてなのですが、
    1.その通りです。分かりにくくて申し訳ありません。
    2.折れ線グラフで1本作りたいです。
    3.グラフの縦軸は適当な乱数です。
    4.グラフの横軸は時間です。
    
    追加の質問もあり不躾ですがよろしくお願いします。
記事No.55424 のレス /過去ログ93より / 関連記事表示
削除チェック/

■56906  Re[2]: Formから別のFormを起動
□投稿者/ マサヤ -(2011/02/04(Fri) 12:47:29)
    イベントでフォームのインスタンスを作るので、イベントはボタンじゃなくても何でもいいのでは?
    完全に仕様によります。
    試しにフォームのLoadイベントでやってみてください。
記事No.56897 のレス /過去ログ95より / 関連記事表示
削除チェック/

■61120  Re[3]: PrintPreviewDialogのカスタマイズ
□投稿者/ 魔界の仮面弁士 -(2011/08/02(Tue) 22:20:49)
    No61111 (五右衛門 さん) に返信
    > PrintDocumentのPrintPageイベントで最大ページ数は分かるのですが、
    > PrintPreviewControlのプロパティなどにこの情報があればいいなと思いまして。
    取得方法が確立しているのであれば、PrintPreviewControl を継承して、
    最大ページプロパティを追加してしまうというのは如何でしょうか。
    
    
    > 自作の印刷プレビュー画面では、「次頁」「前頁」またはスピンボタンで表示ページを指定しようと思うのですが、
    > 最大ページ数などはどのように取得すればいいのでしょうか?
    
    StartPage に Integer.MaxValue を渡すというのはどうでしょうか。
    
      Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
          Dim curPage As Integer = PrintPreviewControl1.StartPage
          PrintPreviewControl1.StartPage = Integer.MaxValue
          Dim maxPage As Integer = PrintPreviewControl1.StartPage
          PrintPreviewControl1.StartPage = curPage
          MsgBox(maxPage)
      End Sub
    
    
    
    あるいは PreviewPrintController の GetPreviewPageInfo が返す配列の数から
    取得できないかな…と思いましたが、こちらは良い手法が思いつきませんでした。
    
      Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
          Dim defaultController As System.Drawing.Printing.PrintController
          defaultController = Me.PrintPreviewControl1.Document.PrintController
          Dim sampleController As New Sample()
          Me.PrintPreviewControl1.Document.PrintController = sampleController
          Me.PrintPreviewControl1.Document.Print()
          Dim maxPage As Integer = sampleController.GetCount()
          Me.PrintPreviewControl1.Document.PrintController = defaultController
          MsgBox(maxPage)
      End Sub
      Private Class Sample
          Inherits System.Drawing.Printing.PreviewPrintController
          Public Function GetCount() As Integer
              Dim p() As System.Drawing.Printing.PreviewPageInfo = MyBase.GetPreviewPageInfo()
              Return If(p Is Nothing, -1, p.Length)
          End Function
      End Class
記事No.61081 のレス /過去ログ102より / 関連記事表示
削除チェック/

■69839  Re[1]: リストボックスの値を選択するには?
□投稿者/ WebSurfer -(2014/02/01(Sat) 19:11:47)
    No69837 (Pirror さん) に返信
    > コンボボックスならば、webBrowser1.Document.All.GetElementsByName("css_id_0")[0].SetAttribute("value", "60");
    > で選択できると思うのですが、
    > リストボックスなので上記でやっても上手く選択出来ません。

    「コンボボックス」というのは size 属性を 1 にしたときのことを言っているのですか?

    「思う」とのことですが、思うだけではなくて実際に検証してなら、「コンボボックス」
    うまく行くことは間違いないのでしょうか?

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

■69840  Re[2]: リストボックスの値を選択するには?
□投稿者/ WebSurfer -(2014/02/01(Sat) 19:17:26)
    No69839 (WebSurfer さん) に返信
    > ■No69837 (Pirror さん) に返信
    >>コンボボックスならば、webBrowser1.Document.All.GetElementsByName("css_id_0")[0].SetAttribute("value", "60");
    >>で選択できると思うのですが、
    >>リストボックスなので上記でやっても上手く選択出来ません。
    >
    > 「コンボボックス」というのは size 属性を 1 にしたときのことを言っているのですか?
    >
    > 「思う」とのことですが、思うだけではなくて実際に検証してなら、「コンボボックス」
    > うまく行くことは間違いないのでしょうか?
    >

    すみません誤記がありました。

    誤:
    「思う」とのことですが、思うだけではなくて実際に検証してなら、「コンボボックス」
    うまく行くことは間違いないのでしょうか?
        ↓
    正:
    「思う」とのことですが、思うだけではなくて実際に検証して、「コンボボックス」なら
    うまく行くのは間違いないことを確認されたのでしょうか?
記事No.69837 のレス /過去ログ119より / 関連記事表示
削除チェック/

■72942  Re[1]: IEのテキストボックスに値を代入して、ボタンを押すには?
□投稿者/ マサ -(2014/08/02(Sat) 02:01:37)
    No72941 (マサ さん) に返信
    > 現在、開いているURLは
    > 下記で取得出来る事が魔界の仮面氏さんからの
    > アドバイスで分かりました。
    >
    > using System;
    > using System.Runtime.InteropServices;
    > using System.Text.RegularExpressions;
    >
    > namespace Sample
    > {
    > class Program
    > {
    > static void Main()
    > {
    > Regex re = new Regex("iexplore\\.exe", RegexOptions.IgnoreCase);
    > Guid CLSID_ShellWindows = new Guid("{9BA05972-F6A8-11CF-A442-00A0C90A8F39}");
    >
    > dynamic shellWindows = Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_ShellWindows));
    > dynamic oMyIE = null;
    >
    > foreach (var oIE in shellWindows)
    > {
    > string fullName = null;
    > try { fullName = oIE.FullName; }
    > catch (COMException ex)
    > {
    > Console.WriteLine(ex.Message);
    > }
    > if (re.IsMatch(fullName)) { oMyIE = oIE; break; }
    > else { Marshal.ReleaseComObject(oIE); }
    > }
    >
    > if (oMyIE != null)
    > {
    > oMyIE.Navigate2("http://www.yahoo.co.jp/");
    > Marshal.ReleaseComObject(oMyIE);
    > }
    > }
    > }
    > }
    >
    > この後、yahooの検索窓に"test"と入力して、
    > 検索ボタンを押すにはどのようにすれば良いのでしょうか?
    >
    > webBrowserを使うと分かるのですが、
    > webBrowserを使わずに開いているIEで処理するにはどのようにしたら良いのでしょうか?
    >

    下記で解決しました。
    Regex re = new Regex("iexplore\\.exe", RegexOptions.IgnoreCase);

    dynamic shellWindows = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("{9BA05972-F6A8-11CF-A442-00A0C90A8F39}")));
    dynamic oMyIE = null;

    foreach (var oIE in shellWindows)
    {
    string fullName = null;
    try { fullName = oIE.FullName; }
    catch (COMException ex)
    {
    Console.WriteLine(ex.Message);
    }
    if (re.IsMatch(fullName)) { oMyIE = oIE; break; }
    else { Marshal.ReleaseComObject(oIE); }
    }

    if (oMyIE != null)
    {
    //oMyIE.Navigate2("http://www.yahoo.co.jp/");

    var doc = oMyIE.Document;

    foreach (var inp in doc.getElementsByTagName("input"))
    {
    if (inp.name == "p")
    {
    inp.value = "test";
    }
    }

    doc = oMyIE.Document;

    doc.getElementById("srchbtn").click();


    }
    Marshal.ReleaseComObject(oMyIE);



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

■91249  Re[2]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ わけあり -(2019/06/08(Sat) 10:56:14)
    Azuleanさん

    ありがとうございます。

    まだ、試していませんが、
    恐らくこれでうまくいくと思います

    PANG2さん

    やりたいことは、
    自作した二つのプログラム間でデータをやり取りすることです。
    > それ自体、普通は駄目な設計だと思いますが。。
    これが駄目な設計なのはなぜでしょうか?
記事No.91237 のレス /過去ログ157より / 関連記事表示
削除チェック/

■91252  Re[3]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ PANG2 -(2019/06/08(Sat) 15:54:43)
    No91249 (わけあり さん) に返信

    > やりたいことは、
    > 自作した二つのプログラム間でデータをやり取りすることです。
    >>それ自体、普通は駄目な設計だと思いますが。。
    > これが駄目な設計なのはなぜでしょうか?

    クリップボードはユーザーがコピー&ペーストをするためにあるので、
    黙って汚すのは良くないと思います。

    アプリAにコピーボタン、アプリBにペーストボタンがあるのであれば、
    クリップボードが汚されるのは明白なので、許されると思います。
記事No.91237 のレス /過去ログ157より / 関連記事表示
削除チェック/

■94934  Re[2]: LINQ IEnumerable
□投稿者/ furu -(2020/06/04(Thu) 14:41:36)
    No94927 (魔界の仮面弁士 さん) に返信
    Hongliangさん,魔界の仮面弁士さん
    ありがとうございます。
    理解できました。
    
    foreach、inのリファレンスにも
    「System.Collections.IEnumerable または
    System.Collections.Generic.IEnumerable<T>」となっていますね。
    
        var rows = new DataGridView().Rows;
        foreach (var x in rows){ }
        var y = rows[0];
    
    yはDataGridViewRowなのに
    xがobjectなのは
    IEnumerable<T>でないからですね。
記事No.94924 のレス / END /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -