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 >>
■3529  Threading.Timerのイベント発生について
□投稿者/ あら -(2007/05/14(Mon) 14:32:09)

    分類:[C# (Windows)] 

    お世話になっております。

    System.Threading.Timerで一定間隔で処理を行わせようとしています。
    ソリューソン構成を「Debug」時は問題なく動作するのですが、「Release」
    時は途中でタイマイベントが発生しなくなります。
    私の環境ではループで17回目にタイマイベントが呼ばれなくなります。

    タイマイベントを発生しなくなる現象を解消するにはどのように記述
    すればよいのでしょうか?

    アドバイス等ご教授お願いします。
    (Visual Studio 2005 C#)

    -------------
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    Thread tThread;
    private void Form1_Load(object sender, EventArgs e)
    {
    tThread = new Thread(new ThreadStart(AAA));
    tThread.IsBackground = true;
    tThread.Start();
    }

    public void AAA()
    {
    AutoResetEvent autoEvent = new AutoResetEvent(false);
    StatusChecker statusChecker = new StatusChecker();

    TimerCallback timerDelegate = new TimerCallback(statusChecker.CheckStatus);
    System.Threading.Timer stateTimer = new System.Threading.Timer(timerDelegate, autoEvent, 0, 100);

    int i = 0;

    while (true)
    {
    SetText("### i:" + (i++).ToString() + Environment.NewLine);
    autoEvent.WaitOne();
    }
    }

    delegate void SetTextCallback(string text);
    public void SetText(string text)
    {
    if (this.richTextBox1.InvokeRequired)
    {
    SetTextCallback d = new SetTextCallback(SetText);
    this.Invoke(d, new object[] { text });
    }
    else
    {
    this.richTextBox1.AppendText(text);
    }
    }
    }

    class StatusChecker
    {

    // This method is called by the timer delegate.
    public void CheckStatus(Object stateInfo)
    {
    AutoResetEvent autoEvent = (AutoResetEvent)stateInfo;
    Debug.WriteLine("{0} Checking status",
    DateTime.Now.ToString("h:mm:ss.fff"));

    autoEvent.Set();
    }
    }
親記事 /過去ログ12より / 関連記事表示
削除チェック/

■3565  Re[2]: 最小化後の再描画について
□投稿者/ 七曜 -(2007/05/15(Tue) 16:19:57)
    まぁ、ざっくり検証なので冗長なコードかもしれません。
    ダッチさん同様、OnPaintで処理を記述。
    ClientSize、ClientRectangleでも(見た目は)同じような動き。
    で、このままだとFormサイズ変更時に意図通りの動作(サイズに合わせて拡大縮小)にならないので
    OnResizeで、Client領域を無効化して再描画処理を実行させてみました。
    こんなで、如何でしょうか。
    ---ここから--------------------------------------------------------------
    public Form1()
    {
    InitializeComponent();
    this.Width = 600;
    this.Height = 600;
    }

    protected override void OnPaint(PaintEventArgs e)
    {
    base.OnPaint(e);
    Size client = this.ClientSize;
    Int32 width = client.Width / 8;
    Int32 height = client.Height / 8;
    // ClientRectangleを使用する場合
    //Rectangle client = this.ClientRectangle;
    //Int32 width = client.Width / 8;
    //Int32 height = client.Height / 8;
    // 縦線の描画処理
    for (Int32 x = 0; x< 8; x++)
    {
    Point ax = new Point(x * width, 0);
    Point bx = new Point(x * width, client.Height);
    e.Graphics.DrawLine(new Pen(Brushes.Black), ax, bx);
    }
    // 横線の描画処理
    for (Int32 y = 0; y < 8; y++)
    {
    Point ay = new Point(0, y * height);
    Point by = new Point(client.Width, y * height);
    e.Graphics.DrawLine(new Pen(Brushes.Black), ay, by);
    }
    }

    protected override void OnResize(EventArgs e)
    {
    base.OnResize(e);
    this.Invalidate();
    }
    ---ここまで--------------------------------------------------------------
記事No.3541 のレス /過去ログ12より / 関連記事表示
削除チェック/

■3564  Re[4]: ピクチャボックス上にラベルをオーナードローしたいです
□投稿者/ てはては -(2007/05/15(Tue) 15:41:07)
    No3559 (keichan さん) に返信
    keichanさん、ご回答ありがとうございます。
    普通にラベルを表示すると、
    +------------------+
    | ■■■ |
    | ■■■■■ |
    | ■■■■■ |
    | ■■■■■ |
    | ■■■ |
    +------------------+
    ↑↑ ↑↑
    の↑のように隙間が生じてしまいます。
    ラベル表示位置は、マウスをクリックした所という定義ですので、コントロールは原則重なるものとお考え下さい。
    表示幅の調整等で、下記のような状態にはできたのですが、それでも4隅が重なった場合に欠ける症状があります。
    +----------+
    | ■■■ |
    |■■■■■|
    |■■■■■|
    |■■■■■|
    | ■■■ |
    +----------+

    > オーナードローでどういったことをなさりたいのでしょうか?
    上記のようにした場合にも一部が欠ける症状が改善されない為、オーナードローであれば問題解決できるかと思い
    質問させて頂きました。

    コントロールが本当に重なって、重ねて表示せざるを得ない場所は問題ないのですが、上記の図で4隅の部分は
    欠ける必要がない部分であるにも関わらず欠けているように考えます。

    日本語にわかりにくい所があり、申し訳ありませんが、ご回答よろしくお願いします。
記事No.3554 のレス /過去ログ12より / 関連記事表示
削除チェック/

■3567  Re[1]: ASP.NET2.0 GridViewの累計合計が分からない
□投稿者/ 七曜 -(2007/05/15(Tue) 17:47:41)
    おそらく、
    [GridView Examples for ASP.NET 2.0: Displaying Summary Data in the Footer]
    http://msdn2.microsoft.com/en-us/library/ms972833.aspx
    を参考にされたのだと思いますが・・・。

    @Defalut.aspxのデザインビューで、DataGridを選択し、プロパティ ウィンドウで
     (1)ShowFooter プロパティをTrueに設定
     (2)RowDataBound イベントにイベントマップ
       (イベント名をダブルクリックすると自動的にイベントハンドラが作成されます。)
    Aページクラス内にPrivateで合計計算用の変数を用意
     Dim priceTotal As Decimal = 0
     Dim quantityTotal As Integer = 0
     これに近いですが、饅頭と煎餅であれば、それ用の変数を用意しましょうね。
    B@-(2)で用意したイベントハンドラ内に集計及び合計(フッター設定)の処理を記述
    ---ここから-----------------------------------------------------------------
    If e.Row.RowType = DataControlRowType.DataRow Then
    ' add the UnitPrice and QuantityTotal to the running total variables
    priceTotal += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, _
    "UnitPrice"))
    quantityTotal += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, _
    "Quantity"))
    ---ここまで-----------------------------------------------------------------
    これが集計処理(データ行であれば合計値を加算する処理)です。
    ---ここから-----------------------------------------------------------------
    ElseIf e.Row.RowType = DataControlRowType.Footer Then
    e.Row.Cells(0).Text = "Totals:"
    ' for the Footer, display the running totals
    e.Row.Cells(1).Text = priceTotal.ToString("c")
    e.Row.Cells(2).Text = quantityTotal.ToString("d")

    e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Right
    e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right
    e.Row.Font.Bold = True
    End If
    ---ここまで-----------------------------------------------------------------
    ここは、合計行(フッター行)の設定になります。

    恐らく意図通り動作していない原因は、
     イベントがマッピングされていない。(単にDefault.aspx.vbにコピーしたのではイベントハンドラとして動作しません。)
    ためです。
    また、最初の方にも書きましたがpriceTotal、quantityTotalなんかは数量であれば数量用の変数型/変数名で宣言しましょう。
    同時に表示用のフォーマットや計算行
    priceTotal += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, _
    "UnitPrice"))
    quantityTotal += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, _
    "Quantity"))
    や、
    e.Row.Cells(1).Text = priceTotal.ToString("c")
    e.Row.Cells(2).Text = quantityTotal.ToString("d")
    もご希望の表記に変更する必要があるかと思います。

    #英文とはいえ、比較的簡単な内容なのでソースコードとあわせて、内容を理解して試しましょうね。
記事No.3514 のレス /過去ログ13より / 関連記事表示
削除チェック/

■4003  文字列のフォーマット方法について
□投稿者/ あら -(2007/05/31(Thu) 14:30:52)

    分類:[C# (Windows)] 

    お世話になっております。
    下記のように記述した場合の結果は"1.110000e-006"となります。
    これを"1.11e-6"のように値に影響がない"0"は表示されないよう
    にしたいのですが、どのように記述すればよいのでしょうか?

    ご教授、アドバイス等お願いします。
    (.NET 2005 C#)
    -------------
    static void Main(string[] args)
    {
    double i = 1.11;
    double j = Math.Pow(10, -6);

    double k = i * j;
    Console.WriteLine(k.ToString("e"));
    }
親記事 /過去ログ13より / 関連記事表示
削除チェック/

■4049  DateTimeの月と曜日の英語表示方法について
□投稿者/ あら -(2007/06/05(Tue) 09:12:20)

    分類:[C# (Windows)] 

    お世話になっております。

    DateTimeで日時を取得しそれをログに表示させようとしています。
    下記のように記述した場合
     火 6 05 09:05:59 2007
    となりますが、表示させたい形式は
     Tue June 05 09:05:59 2007
    のように、曜日と月は英語にしたいと思っています。

    どのように記述すればよいでしょうか?アドバイス/ご教授お願いします。
    (.NET 2005 C#)

    ----------------------
    DateTime dTime = DateTime.Now;
    Console.WriteLine(dTime.ToString("ddd MMM dd HH:mm:ss yyyy"));
親記事 /過去ログ13より / 関連記事表示
削除チェック/

■4069  Re[1]: DataGridで...を表示しないようにするには?
□投稿者/ 魔界の仮面弁士 -(2007/06/05(Tue) 15:28:53)
    No4048 (ハイフン さん) に返信
    > 分類:[C# (Windows)]
    > Ellipse(...)が表示されてしまいますが、
    省略記号なら「ellipsis」では無いでしょうか。「ellipse」だと楕円ですし。

    > 表示しないようにするにはどうすれば良いのでしょうか?
    分類が(ASP.NET ではなく)Windows になっているところを見ると、
    System.Windows.Forms.DataGrid ですよね。

    .NET 1.1 および 2.0 環境で下記コードを試してみた限り、
    当方では、三点リーダは表示されませんでしたよ。

    ---------------
    using System;
    using System.Data;
    using System.Windows.Forms;
    class Form1 : Form {
    static void Main() { Application.Run(new Form1()); }
    DataGrid dataGrid1 = new DataGrid();
    DataTable dataTable1 = new DataTable();
    public Form1() {
    Controls.Add(dataGrid1);
    dataGrid1.Dock = DockStyle.Fill;
    dataTable1.Columns.Add("長いファイル名");
    dataTable1.Rows.Add(new object[] { @"C:\Program Files\Microsoft SQL Server 2005 Mobile Edition\Samples\NorthwindOleDb\NorthwindOleDb.zip" } );
    dataGrid1.DataSource = dataTable1;
    }
    }
    ---------------
記事No.4048 のレス /過去ログ13より / 関連記事表示
削除チェック/

■4081  Re[2]: DataGridで...を表示しないようにするには?
□投稿者/ ハイフン -(2007/06/05(Tue) 21:58:35)
    No4069 (魔界の仮面弁士 さん) に返信
    > ■No4048 (ハイフン さん) に返信
    >>分類:[C# (Windows)]
    >>Ellipse(...)が表示されてしまいますが、
    > 省略記号なら「ellipsis」では無いでしょうか。「ellipse」だと楕円ですし。
    >
    >>表示しないようにするにはどうすれば良いのでしょうか?
    > 分類が(ASP.NET ではなく)Windows になっているところを見ると、
    > System.Windows.Forms.DataGrid ですよね。
    >
    > .NET 1.1 および 2.0 環境で下記コードを試してみた限り、
    > 当方では、三点リーダは表示されませんでしたよ。
    >
    > ---------------
    > using System;
    > using System.Data;
    > using System.Windows.Forms;
    > class Form1 : Form {
    > static void Main() { Application.Run(new Form1()); }
    > DataGrid dataGrid1 = new DataGrid();
    > DataTable dataTable1 = new DataTable();
    > public Form1() {
    > Controls.Add(dataGrid1);
    > dataGrid1.Dock = DockStyle.Fill;
    > dataTable1.Columns.Add("長いファイル名");
    > dataTable1.Rows.Add(new object[] { @"C:\Program Files\Microsoft SQL Server 2005 Mobile Edition\Samples\NorthwindOleDb\NorthwindOleDb.zip" } );
    > dataGrid1.DataSource = dataTable1;
    > }
    > }
    > ---------------
    有難うございます。

    .NET 2.0になります。

    DataGridではなくデフォルトのDataGridViewを使用していたのが問題だったということなのでしょうか?

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

■4083  Re[3]: DataGridで...を表示しないようにするには?
□投稿者/ 魔界の仮面弁士 -(2007/06/05(Tue) 23:44:34)
    # 全文引用は避けてくださいませ。
    
    ■No4081 (ハイフン さん) に返信
    > DataGridではなくデフォルトのDataGridViewを使用していたのが問題だったということなのでしょうか?
    
    使用したことが問題というよりは、DataGridView について質問するときに、
    誤って DataGrid だと書いていたことが問題かな…。
    
    
    > 表示しないようにするにはどうすれば良いのでしょうか?
    
    標準の表示が気に入らないのであれば、CellPainting イベントで好きなように描き換えてしまう、とか。(^_^;)
    
    --------------
    
    // 0列目の内容は 自分で描画する
    if (e.ColumnIndex == 0)
    {
        // セルが選択されているかどうか
        bool selected = DataGridViewElementStates.None
            != (e.State & DataGridViewElementStates.Selected);
    
        // セルの背景を塗りつぶす
        e.PaintBackground(e.ClipBounds, selected);
    
        // 描画するテキスト
        string text = (e.Value ?? String.Empty).ToString();
    
        // テキストの色
        Color color = selected ? e.CellStyle.SelectionForeColor : e.CellStyle.ForeColor;
    
        // テキストの配置など
        TextFormatFlags flags = TextFormatFlags.Default | TextFormatFlags.VerticalCenter;
    
        // 文字列の描画
        TextRenderer.DrawText(e.Graphics, text, e.CellStyle.Font, e.CellBounds, color, flags);
    
        // 描画処理を自分で行った場合は true
        e.Handled = true;
    }
記事No.4048 のレス /過去ログ13より / 関連記事表示
削除チェック/

■4139  GataGridViewで新規行を表示しない
□投稿者/ ratte -(2007/06/07(Thu) 17:56:05)

    分類:[VB.NET (Windows)] 

    Windows XP
    VB.NET2005

    お世話になります.

    Windowsアプリを作っています.
    DataGridViewにデータを表示させたいのですが,データが入っていない新しい行(インデックスが*)を表示したくありません.
    DataGridViewのReadOnlyプロパティをTrueにする,ということをやってみたのですが表示されたままです.

    コードは以下の様に書いてます.
    -----------------------------------------------------------------
    Dim vDataTable As New DataTable
    Dim vDtRow As DataRow

    '列定義
    vDataTable.Columns.Add("列A")
    vDataTable.Columns.Add("列B")

    '新規行作成
    vDtRow = vDataTable.NewRow

    'セルの内容
    vDtRow.Item(0) = ("10000)
    vDtRow.Item(1) = ("あいうえお")

    '行追加
    vDataTable.Rows.Add(vDtRow)

    'DataGridViewにデータをセット
    DataGridView1.DataSource = vDataTable

    '新規行を表示しない
    DataGridView1.ReadOnly = True

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

    ReadOnlyを使うことが見当はずれなのでしょうか?
    ご存知の方がいらっしゃいましたらご教授ください.
    宜しくお願い致します.
親記事 /過去ログ13より / 関連記事表示
削除チェック/

■4165  起動時のアプリの終了のさせ方
□投稿者/ あら -(2007/06/08(Fri) 14:16:28)

    分類:[C# (Windows)] 

    お世話になっております。

    アプリの起動時に条件によって、アプリを起動させないで終了させようと思っています。
    "Test1"のように記述した場合はアプリは起動してしまいます。
    "Test2"のように記述した場合は例外が発生します。(Program.cs内のApplication.Run(new MainWindow());でObjectDisposedException)

    どのように記述すればよいのでしょうか?
    アドバイス、ご教授お願いします。
    (.NET 2005 C#)
    ----------
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();

    Test1();
    //Test2();
    }

    private void Test1()
    {
    Application.ExitThread();
    }
    private void Test2()
    {
    this.Close();
    }

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

■4260  Re[3]: DataGridViewにチェックボックスを表示する
□投稿者/ ratte -(2007/06/12(Tue) 09:29:03)
    魔界の仮面弁士さん,ダッチさん,返信ありがとうございます.

    魔界の仮面弁士さんの非連結の方法でチェックボックスを作ることが出来ました.

    別の方法でも出来たので一応そちらも記述しておきます.

    ======================================================================
    Dim vDataTable As New DataTable
    Dim grdClmTxt As DataGridViewTextBoxColumn
    Dim grdClmChk As DataGridViewCheckBoxColumn

    '------------------
    '列生成
    '------------------
    vDataTable.Columns.Add("列A")
    vDataTable.Columns.Add("列B")

    '--------------------------------
    'DataGridView表示設定
    '--------------------------------
    'データの自動生成を抑える
    DataGridView1.AutoGenerateColumns = False

    '列定義
    grdClmTxt = New DataGridViewTextBoxColumn
    grdClmTxt.Name = "列A"
    grdClmChk = New DataGridViewCheckBoxColumn
    grdClmChk.Name = "列B"

    DataGridView1.Columns.Add(grdClmTxt)
    DataGridView1.Columns.Add(grdClmChk)

    'データ割付け
    DataGridView1.Columns("列A").DataPropertyName = "列A"
    DataGridView1.Columns("列B").DataPropertyName = "列B"

    'データBind
    DataGridView1.DataSource = vDataTable

    '実データ投入
    vDataTable.Rows.Add("進学", True)
    vDataTable.Rows.Add("進学", True)
    vDataTable.Rows.Add("就職", False)
    vDataTable.Rows.Add("進学", True)

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

■3950  VC++で作成したAvtiveXのIEからの呼び出しについ
□投稿者/ ayumina222 -(2007/05/29(Tue) 19:14:35)

    分類:[C/C++] 

    はじめまして、ayumina222と申します。

    VC++を使ってActiveXを作成しました。
    IEから呼び出しをし、ローカルのメモ帳に引数を渡して起動したいと考えています。

    作成したActiveX(ocx)はフリーツールを利用してinfファイルを作成し、cabファイルにまとめました。
    テスト用に証明書も作成し、ocx、cab共に署名もしました。
    この状態でサーバーにアップし下記のhtmlソースで呼び出しを試みましたがレジストリにActiveXのClassIDが書き込まれていないPCではまったく反応がありません。
    あと、実行された場合にActiveXのDoPropExchange関数内に書いた処理が何回か実行されてしまいます( ̄д ̄) エー

    HTMLソース
    ----*----*----*----*----*----*----*----*----*----*----*----*
    <object classid="CLSID:****************************" codebase="http://ドメイン/XXXXXXXXXXX.cab" id="XXXXXXXXXXX" width="0" height="0" TYPE="application/x-oleobject">
    <param name="test1" value="XXXXXXXXXXX" />
    <param name="test2" value="XXXXXXXXXXX"/>
    <param name="test3" value="XXXXXXXXXXX" />
    </object>
    ----*----*----*----*----*----*----*----*----*----*----*----*

    期待している動作としては、
    「ActiveXをインストールしますか?」
    というダイアログが出て、承諾するとインストールを実行し、受け取った引数をローカルのPCのnotepad.exeに渡すといった動作です。

    IEのセキュリティ設定はActiveXを実行できるよう変更してあります。
    証明書も登録しました。
    ClassIDが登録されているPCでは期待通りの動作をしてくれているので、ocxには問題は無いと思います。
    ワタシはClassIDがローカルPCで見つからなかった場合にはcodebaseのURLを参照してIEがインストールを実行するという認識でしたが、どうも期待通りに動いてくれません(●`ε´●) ぶー
    codebaseのURLに直接アクセスした場合には
    「cabファイルを保存しますか?」
    と出るので、パスは通っていると思うのですが。。。

    どなたかお分かりになる方いらっしゃいましたら、
    宜しくお願いします(π0π) ウルルルル
親記事 /過去ログ13より / 関連記事表示
削除チェック/

■3958  Re[2]: VC++で作成したAvtiveXのIEからの呼び出しについ
□投稿者/ ayumina222 -(2007/05/30(Wed) 10:58:40)
    No3952 (ちゃっぴ さん) に返信

    ちゃっぴさん、ご解答ありがとうございます(*≧∇≦)

    > cab の中の inf はどうなっていますか?
    infファイルの内容はこんな感じです。
    全部張っちゃいました(笑)

    ----*----*----*----*----*----*----*----*----*----*----*----*----*----*

    ;XXXXXXXXXXX.ocx用セットアップファイル
    ;DestDir=10はWindowsディレクトリへ、11はSystemディレクトリへ、空白はOccacheディレクトリ

    [version]
    signature="$CHICAGO$"
    AdvancedINF=2.0

    [DefaultInstall]
    CopyFiles=install.files
    RegisterOCXs=RegisterFiles
    AddReg=AddToRegistry

    [RInstallApplicationFiles]
    CopyFiles=install.files
    RegisterOCXs=RegisterFiles
    AddReg=AddToRegistry
    [DestinationDirs]
    install.files=11

    [SourceDisksNames]
    1=%DiskName%,XXXXXXXXXXX.cab,1

    [Add.Code]
    XXXXXXXXXXX.ocx=XXXXXXXXXXX.ocx
    [install.files]
    XXXXXXXXXXX.ocx=XXXXXXXXXXX.ocx
    [SourceDisksFiles]
    XXXXXXXXXXX.ocx=1

    [XXXXXXXXXXX.ocx]
    file-win32-x86=thiscab
    clsid={xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
    RegisterServerr=yes
    FileVersion=1,0,0,1
    DestDir=

    [Setup Hooks]
    AddToRegHook=AddToRegHook

    [AddToRegHook]
    InfSection=DefaultInstall2

    [DefaultInstall2]
    AddReg=AddToRegistry

    [AddToRegistry]
    HKLM,"SOFTWARE\Classes\CLSID\{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}"
    HKLM,"SOFTWARE\Classes\CLSID\{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}"
    HKCR,"Licenses",,,"Licensing: Copying the keys may be a violation of established copyrights."
    [RegisterFiles]
    %11%\XXXXXXXXXXX.ocx

    ----*----*----*----*----*----*----*----*----*----*----*----*----*----*

    > CLSID 登録されるようになっています?

    う〜ん、記述は間違っていないと思うんですけど、レジストリには何も変化がないみたいです。。。

    > それから、user は HKCR へ書き込める権限がありますか?
    >
    > XP までだと power user 以上の権限を持つ group に所属していないと書き込めませんよ。
    >

    実行しているユーザーはみんな「コンピューターの管理者」ってなってます。
    問題ないと思うんですけどね〜(ノ_・。)クスン

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

■4382  Re[14]: ボタンでlistviewアイテムの取得
□投稿者/ 美流久 -(2007/06/15(Fri) 13:03:04)

    まるるうさん
    とりこびとさん
    mあさん
    こんにちは
    コードありがとうございます。
    サンプルコード使いませんでしたが、解決の道が分かりました。
    ---------------
    間違えてたコード
    n=0←(.selectedites(0).index)
    dim index as integer
    index +=4

    picturebox1.image=image.fromfile(.items(n+index).text)
    ---------------
    解決したコード
    n=0←(.selectedites(0).index)
    n +=4

    picturebox1.image=image.fromfile(.items(n).text)
    ---------------
    としました。
    変数indexを変える事を考えてばかりでnをどうこうする事を考えてませんでしたorz
    listviewで記述したindex(変数n)を+4にし、出来ました。
    私の説明不足だったと思いました。

    すみません&ありがとうございました。
記事No.4241 のレス / END /過去ログ14より / 関連記事表示
削除チェック/

■4441  DataGridの行の表示方法
□投稿者/ KEI -(2007/06/18(Mon) 11:01:52)

    分類:[C# (ASP.NET)] 

    Oraclからデータを取得して、ASPのDataGridに表示するソースを作っています。
    データは正常に取得できて表示もできるのですが、以下のような表示をさせたいのですが、さっぱり見当もつきません。
    よろしくお願いします。


    -----------------------------------
    項目A   項目B  項目C  項目D-1
    -----------------------------------
    項目A   項目B  項目C  項目D-2
    -----------------------------------
    項目A   項目B  項目C  項目D-3
    -----------------------------------
    項目A   項目B  項目C  項目D-4
    -----------------------------------

    というデータに対して

    -----------------------------------
    項目A   項目B  項目C  項目D-1
    -----------------------------------
    NULL   NULL   NULL  項目D-2
    -----------------------------------
    NULL   NULL   NULL 項目D-3
    -----------------------------------
    NULL   NULL   NULL 項目D-4
    -----------------------------------

    上記の様に表示させたいのです。(NULLのところを表示させない)



    どうかご教授よろしくお願い致します。


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

■4612  Re[13]: 画像のクリアについて
□投稿者/ 囚人 -(2007/06/20(Wed) 16:42:55)
    >どうしても共有しているかどうか不明なものについては仕方ないとしても、自分で管理可能なものについては極力管理する努力をするべきです。
    
    まぁ、そうなんですけど、入れ替えのときは必ず Dispose という流れになっているのはどうかなと思いまして。
    例えば、以下の2つのパターンによって変わりませんか?
    
    -----------------(1)
    class Form1 : Form
    {
    	void f1()
    	{
    		pictureBox.Image = Image.FromFile(filePath);
    	}
    
    	voidf2()
    	{
    		pictureBox.Image.Dispose();
    		pictureBox.Image = Image.FromFile(filePath);
    	}
    }
    
    -----------------(2)
    class Form1 : Form
    {
    	Image image;
    
    	void f0()
    	{
    		image = Image.FromFile(filePath);
    	}
    
    	void f1()
    	{
    		pictureBox.Image = image;
    	}
    
    	voidf2()
    	{
    		// ?
    //		pictureBox.Image.Dispose();
    		pictureBox.Image = Image.FromFile(filePath);
    	}
    }
    
    
    
    >可能性はあるけど、それ前提でやってたら Dispose() も using もまるで出来なくなっちゃいますぜ。
    
    という事なので、管理できるかどうかの前提を持つべきだとは思います。
    
記事No.4558 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4359  Re[6]: [VB6] open 書き込みバッファのデフォルトサイズ
□投稿者/ 魔界の仮面弁士 -(2007/06/14(Thu) 17:13:20)
    誤記とは思いますが、一応補足。


    No4351 (mあ さん) に返信
    > Print # ,... Print VbCrLf
    > も高速化の手の一つですね。

    vbCrLf の指定は不要です。
    Print # ステートメントは、自動的に末尾に CrLf 改行を挿入しますので。


    -- (1)末尾改行ありで出力するとき
    Print #f, "abcdefg"
    ----------------------------------------

    -- (2)末尾改行無しで出力するとき
    Print #f, "abcdefg";
    ----------------------------------------

    -- (3)改行だけを出力するとき
    Print #f,
    ----------------------------------------

    -- (4)末尾改行無しで、1行出力
    Print #f, Tab(1);"abcdefg";
    ----------------------------------------


    「最終行に改行を含める CSV 出力」では (1) を。

    Do Until RS.EOF
      Debug.Print #f, CStr(F1.Value) & "," & CStr(F2.Value) & "," & CStr(F3.Value)
      RS.MoveNext
    Loop


    「最終行に改行を含めない CSV 出力」では (4) を。

    Do Until RS.EOF
      Debug.Print #f, Tab(1); CStr(F1.Value) & "," & CStr(F2.Value) & "," & CStr(F3.Value);
      RS.MoveNext
    Loop
記事No.4337 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4354  Re[5]: [VB6] open 書き込みバッファのデフォルトサイズ
□投稿者/ 魔界の仮面弁士 -(2007/06/14(Thu) 16:08:51)
    2007/06/14(Thu) 16:30:47 編集(投稿者)

    VB6 の高速化コード集。
    可読性に難のあるコードも多いので、使いどころに注意。
    http://www.xbeat.net/vbspeed/


    No4350 (mあ さん) に返信
    >>記事の内容を読み違えているような……。
    > 読み違えています?バッファリングのことだと認識していたのですが・・・
    バッファです。バッファなんですが、記事中で書かれていた内容は、
     『32000 を指定すると高速アクセスできる。』
     『関数内で合計 65000 程度のバッファしか確保できない。』
    であって、
     「32000 〜 65000 の範囲を指定することで、書き込み処理を高速化出来る」
    では無いと思いますよ。

    元の記事にもヘルプにも、65000 という値を Len に指定できるとは
    書かれていませんし、実際に指定すると、実行時エラーとなりましたから。

    > ノンバッファリングの Print があるってことですか?
    > VB の書き込みはバッファリング無しが基本なんですか?

    文字列連結の話は、たとえば
     Set RS = Con.Execute(SQL)
     Do Until RS.EOF
      S = S & RS.Collect("ID") & ","
      RS.MoveNext
     Loop
     Print #f, S;
    のような書き方をすると低速であり、
     Set RS = Con.Execute(SQL)
     Do Until RS.EOF
      Print #f, RS.Collect("ID") ","
      RS.MoveNext
     Loop
    の方が結果的には高速であった…という話です。

    もっとも、Recordset のテキスト化なら、GetString メソッドを併用した方が早いですけれどね。


    でもって、Mid ステートメントの件は:
    ------------
    Dim S As String

    S = "aaa"
    Debug.Print StrPtr(S), "["; S; "]"
    S = S & "bbb"
    Debug.Print StrPtr(S), "["; S; "]"

    S = "aaa "
    Debug.Print StrPtr(S), "["; S; "]"
    Mid(S, 4) = "bbb"
    Debug.Print StrPtr(S), "["; S; "]"
    ------------

    後者(Midステートメント)では、同じアドレスがそのまま使われていることを確認できますが、
    前者(& 演算子)では、文字列処理の前後で、変数のアドレスが変更されていることがわかります。

    これは単純に連結すると、新たな文字列領域の確保・複写・元の領域の破棄が行われるためです。
    そのため文字列が長くなればなるほど、加速度的に処理時間がかかるようになります。

    Mid ステートメントは、最初に確保した文字列領域内を書き換える形で動作するので、
    メモリの再確保等が行われず、高速に処理される…という話ですね。
記事No.4337 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4716  Re[5]: ""で囲まれた文字の色を変えたい
□投稿者/ iwaiwa -(2007/06/22(Fri) 20:04:40)
    一応できると言ったので、C#で作ってみました。
    実際に作ると結構面倒でした(笑)
    必ずしもベストとは言えませんが、参考にどうぞ。

    -----
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.Drawing;

    namespace WindowsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    const string value = "\"";
    string text = richTextBox1.Text;

    List<int> list = new List<int>();

    int startIndex = 0;
    int index = text.IndexOf(value, startIndex);

    while (index != -1)
    {
    list.Add(index);

    startIndex = index + 1;
    index = text.IndexOf(value, startIndex);
    }

    // 文字色を設定
    Color selectionColor = Color.Red;

    for (int i = 0; i < list.Count - 1; i += 2)
    {
    richTextBox1.Select(list[i] + 1, list[i + 1] - list[i] - 1);
    richTextBox1.SelectionColor = selectionColor;
    }
    }
    }
    }
記事No.4419 のレス /過去ログ14より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

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

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

パスワード/

- Child Tree -