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

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

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

全過去ログを検索

<< 0 >>
■16894  C#で複数のファイルをコピーする
□投稿者/ のびた -(2008/04/12(Sat) 16:52:32)

    分類:[C#] 

    こんにちは。
    最近日曜プログラマをはじめました。
    VisualStudioExpress2008のC#のファイルコピーについての質問です。

    複数のファイルをコピーする際に
    for (int i = 0; i < copySrcPath.Length; i++){
    FileSystem.CopyFile(copySrcPath[i], copyDestPath, UIOption.AllDialogs);
    }

    としています。これだと、同じファイル名が存在する場合には上書き確認が何度も
    表示されてしまいます。
    そこで、上書き確認を一度表示させて、後は同じ処理をするような方法はありませんでしょうか?

    つまり、エクスプローラで複数のファイルをコピーした場合のように、
    上書き確認で「すべて上書き」(XP)や「同じ処理をする」(Vista)などの確認ダイアログを
    表示させたいのですが・・・。
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■22419  クリスタルレポートについて
□投稿者/ オガシン -(2008/07/23(Wed) 13:19:12)

    分類:[.NET 全般] 

    クリスタルレポートについて質問があります。

    環境:VS2008 Pro
    言語:VB.NET

    アクティブレポートではソースコード上で各フィールドにデータをバインド(割り当て)
    することができますが、クリスタルレポートに置き換えた場合はどのように行うのでしょうか?
    またクリスタルレポートの使い方とかを紹介している場所がありましたら教えていただけませんでしょうか。

    ---調査内容として---

    ActiveReportsではページヘッダーが出力されるとき、明細が出力されるときなどに
    イベントがあり、メソッドを作成して明細が出力されるときにデータを2倍して出力
    などの処理を記述できました。

    今回クリスタルレポートで同じ帳票つくれたらライセンス買わなくていいよねって話に
    なりました。同じ雰囲気でつくれるのかと思いきや、クリスタルレポートには上記の様な
    イベントはないようです。

    クリスタルレポートのソースコードをみるとReportClassクラスを継承しているようです。
    Public Class TestReport
    Inherits ReportClass
    ReportClassに実装されているイベントは
    ・Disposed
    ・InitReport
    ・RefreshReport
    の3種類のみでした。

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

■58014  Re[1]: 文字を数値に変換する方法
□投稿者/ επιστημη -(2011/03/23(Wed) 22:25:52)
>
    こんなんでいかがでしょ。
    
    class Program {
      public static void Main() {
        char c = '5';
        int n = int.Parse(c.ToString());
        System.Console.WriteLine(n);
      }
    }
    
記事No.58012 のレス /過去ログ97より / 関連記事表示
削除チェック/

■60152  Re[3]: BMPファイルをBgra32形式で読み込みたい
□投稿者/ とっちゃん -(2011/06/22(Wed) 01:54:49)
>
    No60148 (K さん) に返信
    >>V4フォーマットのファイルは一般には流通していないと思っていたのですが。。。そうではないんですね。
    >
    > 私もあまり見たことがないです。使わないんですかね。。。
    >
    V4フォーマットは圧縮フォーマットじゃないので、アルファプレーンを使うならPNGを使うのが一般的だと思います。
    もっともBMPをそのまま使ってということそのものが減ってると思いますが。。。

    >>ピクセル情報以外は問題なく読み取れているのでしょうか?
    >>また、WICを使った場合最上位の8ビットはクリアされていたりするのでしょうか?
    >
    > 最上位8ビット以外はちゃんと読めてます。
    > ただ、透けて欲しい部分が透けてくれません。
    > CopyPixelで読み出すと、最上位バイトが0になってます。
    >
    CopyPixelは、PixelFormat見てしまう気がするんですが。。。直接メモリイメージを参照してみないとわからない気がします。


    > その可能性も考えました。
    > ネットで見つけたV4フォーマットのデータや、ツールで生成したファイルを片っ端から読み込ませてみましたが、ダメでした。
    >
    とすると、WICが対応していない可能性が非常に高いですね。
    そもそもWICでV4フォーマットにエクスポートはできるのでしょうか?

    もし、エクスポートできるのなら、PNGで透過のある画像を読み込んで、そいつをV4フォーマットでエクスポートして
    そのエクスポートされたビットイメージを見れば何かつかめるのではないかと。。。


    >>個人的には、V4フォーマットの画像ファイルはまだ見たことがないので、ヘッダーの内容を見て正しいかどうかを
    >>判断することができるかどうかもわかりませんけどw
    >
    > MSDNにあまり情報がないんで、あまり自信がないです。
    > 特に、v4の時、12バイトのカラーマスクがヘッダの後ろに必要なのかどうかとか。
    >
    12バイト?
    BI_BITFIELDSがついている場合のことかな?
    その場合は、V4HEADERのbV4RedMask〜bV4AlphaMaskの4フィールドが有効かどうかになります。
    ヘッダー領域(bV4Size)のあとには来ません。
    それと、おそらくですがBI_RGBの場合はアルファ画像にはならないと思います。

    でもヘッダーを見た限りではV4/V5ともに通常のBMPフォーマットではアルファ画像を扱うかどうかははっきり書かれていないですね。
    なのでどっちなのかわからない。。。

    BI_PNGなら使えると思いますが、ビットイメージにPNGのどのデータをセットすればいいかが書かれてないのでこれもまたよくわからない。。。w
    V4でアルファを扱うよりは素直にPNGにしたほうがいいような気がします。
記事No.60072 のレス /過去ログ101より / 関連記事表示
削除チェック/

■61334  Re[6]: DrawLineで書いた1pxの線の色が薄い
□投稿者/ YAS -(2011/08/09(Tue) 14:25:23)
    1pxとなりに透明からだんだん濃くなるように線を引き,同時に最初の線が濃い色からだんだん透明になるようにすれば,
    線はかくかくと動かずぬるぬると動いているように見えるのではないでしょうか。
    2本の線の合計の明るさが常に一定になるような条件が分からないと点滅するように見えてしまうかもしれませんが...

    下は説明のためのコードです。透明度の制御は適当です。
    Public Class Form1

    Private WithEvents Timer1 As New Timer
    Private Const MinOpa As Integer = 48
    Private Opa1 As Double = MinOpa
    Private x As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.BackColor = Color.Black
    Me.DoubleBuffered = True
    Me.Timer1.Interval = 100
    Me.Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Me.Invalidate()
    Opa1 += 16
    If Opa1 > 255 Then
    Opa1 = MinOpa
    x = (x + 10) Mod 100
    End If
    End Sub

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    Dim g As Graphics = e.Graphics
    Dim Opa2 As Integer = CInt(255 + MinOpa - Opa1)
    Dim Height As Integer = Me.ClientSize.Height
    g.FillRectangle(New SolidBrush(Color.FromArgb(Opa2, Color.Yellow)), x, 0, 10, Height)
    g.FillRectangle(New SolidBrush(Color.FromArgb(CInt(Opa1), Color.Yellow)), x + 10, 0, 10, Height)
    End Sub

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

■86752  削除
□投稿者/ あ -(2018/03/09(Fri) 20:07:49)

    分類:[.NET 全般] 

    2018/03/15(Thu) 23:11:06 編集(投稿者)

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

■86753  Re[1]: カルチャを変更する時
□投稿者/ Azulean -(2018/03/09(Fri) 22:27:06)
    No86752 (あ さん) に返信
    > この時にOKを押すとダイアログが消えてform1の表示が変わるようにしたいんです。

    基本的に CurrentUICulture の影響を受けるのは フォーム またはユーザーコントロールを生成する時だけです。
    すでに生成されているものに対して影響はありません。

    どうしてもすでに表示されているフォームに対して処理したいのであれば、フォーム上に存在するすべてのコントロールに対して ApplyResource を再実行する必要があります。
    このあたりは、VB.NET からは見えづらいかもしれませんが、InitializeComponent の内容を確認して、それを応用していただくことが必要になります。

    参考
    https://social.msdn.microsoft.com/Forums/ja-JP/3e35b9fe-4f26-44ab-883a-1803cbc35538
記事No.86752 のレス /過去ログ149より / 関連記事表示
削除チェック/

■86805  Re[2]: usercontrolにチェックボックスができない
□投稿者/ Azulean -(2018/03/18(Sun) 17:23:58)
    VB.NET を利用している、表現方法、現状の書き換え削除対応といった類似性からすると No86752 と同じ方でしょうか?
    あなた自身が望む反応ではなかったとしても、削除はやめてください。

    結果として、スレッドが第三者にとって無価値化する行為であり、場所を提供していただいている方々にも迷惑にあたると考えているためです。
記事No.86802 のレス /過去ログ149より / 関連記事表示
削除チェック/

■88231  Re[1]: c# エクセルのセル範囲を1次配列に格納する方法
□投稿者/ 魔界の仮面弁士 -(2018/08/10(Fri) 11:18:47)
    No88223 (ユウタ さん) に返信
    > forを使わずにエクセルのセル範囲をstring型で1次配列に格納したいのですが、可能でしょうか。
    > (大量の値を格納するためforだと処理が遅くなるため高速化したいです)

    No88228 で既に回答がついていますが、2 次元配列で読み書きすることなら可能です。


    Range が単一のセル範囲を表す場合
     Value プロパティは単一の値を返します。

    Range が連続した複数のセル範囲を含む場合
     Value プロパティは 2 次元配列を返します。
     1 次元目が行方向(縦)、2 次元目が列方向(横)を意味します。

    Range が非連続のセル範囲を含む場合
     Values からは最初の連続領域のみの内容が返されます。
     すべてを取り出す場合は、Areas プロパティを使って
     連続領域ごとの Range に分解してから
     それぞれの Value プロパティを呼び出すようにします。


    なお、Value プロパティからの返却値を受け取る場合、
    C# では先頭が 1 から始まる特殊な配列として返却される可能性があります。
    (VB.NET の場合は、常に 0 始まりに補正されます)




    using System;
    using System.Linq;
    using System.Runtime.InteropServices;
    using usgExcel = Microsoft.Office.Interop.Excel;
    namespace Test_エクセルを1次配列化
    {
     class Program
     {
      static void Main(string[] args)
      {
       string FilePath = @"C:\AAA.xlsx";

       usgExcel.Application myExcel = new usgExcel.Application();
       myExcel.Visible = true;
       usgExcel.Workbooks myWorkBooks = myExcel.Workbooks;
       usgExcel.Workbook myWorkBook = myWorkBooks.Open(FilePath);
       usgExcel.Sheets mySheets = myWorkBook.Sheets;
       usgExcel.Worksheet myWorkSheet = mySheets["Sheet1"];

       usgExcel.Range myCells = myWorkSheet.Cells;
       usgExcel.Range myCells1 = myCells[1, 1];
       usgExcel.Range myCells2 = myCells[5000, 1];
       usgExcel.Range myRange = myWorkSheet.Range[myCells1, myCells2];

       // 二次元配列として取得されます
       // 1..5000 になるか、0..4999 になるかは環境依存
       object[,] values = myRange.Value;

       Marshal.FinalReleaseComObject(myCells1);
       Marshal.FinalReleaseComObject(myCells2);
       Marshal.ReleaseComObject(myRange);
       Marshal.ReleaseComObject(myCells);
       Marshal.ReleaseComObject(myWorkSheet);
       Marshal.ReleaseComObject(mySheets);
       Marshal.ReleaseComObject(myWorkBook);
       Marshal.ReleaseComObject(myWorkBooks);

       // myExcel.Quit();
       Marshal.ReleaseComObject(myExcel);

       // object[,] を string[] に変換します
       string[] strValues = new string[values.Length];

       // 元の配列が 0 ベースの場合と 1 ベースの場合がありえるため、
       // GetLowerBound を利用して列挙しています。
       for (int x = values.GetLowerBound(0), i = -1; x <= values.GetUpperBound(0); x++)
       {
        for (int y = values.GetLowerBound(1); y <= values.GetUpperBound(1); y++, i++)
        {
         if (values[x, y] != null)
         {
          strValues[i] = values[x, y].ToString();
         }
        }
       }

       Console.WriteLine(strValues[0]);
       Console.WriteLine(strValues[1]);
       Console.WriteLine(strValues[2]);
       Console.WriteLine(strValues[3]);

       Console.ReadKey();
      }
     }
    }

    # 2 次元配列のまま LINQ 処理できるよう、拡張メソッドを用意しておいたほうが楽かも。
記事No.88223 のレス /過去ログ151より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -