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 >>
■6256  GridViewの列幅の設定とTextBox化
□投稿者/ ワイフラ -(2007/08/07(Tue) 09:27:02)

    分類:[ASP.NET (VB)] 

    ASP.NETで言語はVBを使って開発をしているんですが
    ある画面でPage_Load時に作ったWebサービスでSQL Sarverよりデータを
    取ってきて下記のような感じでデータをGridViewにバインドしているんですが、
    バインドしたGridViewの列幅を変更したいんですがColumnsのカウント等を見ても
    何も入っていませんし自分が考えられる限りやっては見たんですが
    一向にできませんでした。

    ---------------------------------------------------------
    Dim DataSet1 As New localhost.Service

    GridView1.DataSource = DataSet1.GetOrderData()
    GridView1.DataMember = "Order_Data"
    GridView1.DataBind()
    ---------------------------------------------------------

    その他にも、例えばバインドしたデータが7列あるとして、
    その3列目をTextboxにして変更したりしたいんですが
    やはりどうやっていいのかわかりません。

    上記のやりかたを教えて頂けたらありがたいです。
    よろしくお願いします。
親記事 /過去ログ17より / 関連記事表示
削除チェック/

■6534  Re[2]: プロシージャの問題ですが
□投稿者/ komaru -(2007/08/17(Fri) 14:49:18)
    No6527 (渋木宏明(ひどり) さん) に返信
     遅くなってごめん。
     具体的には以下のように

    LOOP
           --------------------------------------------------------------------
    -- 1レコード分のカラムデータを【COL_SEQ】変数に格納
    --------------------------------------------------------------------
    i := 0;
    OPEN GET_DATA_INOUT_DB(PRM_DATA);
    LOOP
    FETCH GET_DATA_INOUT_DB INTO REC_GET_DATA_INOUT_DB;
    EXIT WHEN GET_DATA_INOUT_DB%NOTFOUND;
    DBMS_SQL.COLUMN_VALUE(curSearch,i+1,COL_SEQ(i+1));
    COL_SEQ(i+1) := rtrim(ltrim(COL_SEQ(i+1))); i := i + 1;
    END LOOP;
    CLOSE GET_DATA_INOUT_DB;
    DBMS_SQL.COLUMN_VALUE(curSearch,i+1,COL_SEQ(i+1));
    COL_SEQ(i+1) := rtrim(ltrim(COL_SEQ(i+1))); --受信時連番
    /************************************************************/
    -- データチェック開始&ブレイクキー生成
    /************************************************************/

    DBMS_OUTPUT.PUT_LINE('--------------------------------------' );
    DBMS_OUTPUT.PUT_LINE('DENPYOKB-->' || COL_SEQ( SFS_IN_Return_Col_No(PRM_DATA,'DENPYO_KB') ) );
    DBMS_OUTPUT.PUT_LINE('YOTEIYMD-->' || COL_SEQ( SFS_IN_Return_Col_No(PRM_DATA,'SYC_YOTEI_YMD') ) );
    DBMS_OUTPUT.PUT_LINE('DENPYONO-->' || COL_SEQ( SFS_IN_Return_Col_No(PRM_DATA,'DENPYO_NO') ) );
    ------------------ここ以上は正しく動く-------------------------------

    OPEN GET_DATA_INOUT_DB(PRM_DATA);
    LOOP
    ------------------ここからはだめ-------------------------------

    FETCH GET_DATA_INOUT_DB INTO REC_GET_DATA_INOUT_DB;
    EXIT WHEN GET_DATA_INOUT_DB%NOTFOUND;

    -- COL_DATA(値) = REC_GET_DATA_INOUT_DB.FIELD_NMの情報です--
    ------------------------------------------------------------
    COL_DATA := COL_SEQ(i+1); --★★ 1カラム情報 ★★ --
    ------------------------------------------------------------

    --入出力DB情報のフィールドに該当する、入出力マスタ明細設定が存在するか?
    BEGIN
    SELECT * INTO REC_MK_INOUT_B
    from MK_INOUT_B
    where KOKYAKU_CD = KEY_KOKYAKU_CD
    and BUMON_CD = KEY_BUMON_CD
    and KYOTEN_CD = KEY_KYOTEN_CD
    and DATA_CD = PRM_DATA --データ種別コード
    and FIELD_NM = REC_GET_DATA_INOUT_DB.FIELD_NM; --カラム名

    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    デバッグ結果は以下のように

    スタート
    --------------------------------------
    DENPYOKB-->20               /* ここは正常ではない 
    YOTEIYMD-->20050609           /* ここは正常ではない   
    DENPYONO--> /* ここは正常ではない 
    --------------------------------------
    DENPYOKB-->23 /* ここは正常
    YOTEIYMD-->20070706 /* ここは正常
    DENPYONO-->10550213803696 /* ここは正常
    --------------------------------------ーーーーーーーーー以下は正常ーーーーーー
    DENPYOKB-->23
    YOTEIYMD-->20070706
    DENPYONO-->10550213803689
    --------------------------------------
    DENPYOKB-->23
    YOTEIYMD-->20070430
    DENPYONO-->10550210785094
    --------------------------------------
    DENPYOKB-->23
    YOTEIYMD-->20070430
    DENPYONO-->10550210785094
    終了

    よろしくお願いいたします。

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

■6493  妥当性チェックについて
□投稿者/ サンダル -(2007/08/16(Thu) 09:57:35)

    分類:[C#] 

    こんにちは。よろしくお願いします。

    XMLをスキーマで妥当性チェックをしていて、スキーマの解析中に意図しないエラーがでてしまって困っております。
    (Borland C# Builder)

    ---------------------- スキーマ ----------------------
    <?xml version="1.0" encoding="UTF-8"?>
    ・・・省略・・・
    <xsd:simpleType name="test">
    <xsd:restriction base="xsd:string">
    <xsd:pattern value="(\p{IsBasicLatin}|\p{IsLatin-1Supplement})*"/>
    </xsd:restriction>
    </xsd:simpleType>
    ・・・省略・・・
    ------------------------------------------------------

    とスキーマに記述しており、次のような解析エラーが出力されます。

    --------------------- 解析エラー ---------------------
    面を制限しているパタンが無効です - 解析中 "^(((\p{IsBasicLatin}|\p{IsLatin-1Supplement})*))$" - 不完全な \p{X} 文字エスケープです。
    ------------------------------------------------------

    どうやら "IsLatin-1Supplement" がよろしくないようです。

    回避する術をご教授ください。よろしくお願いします。

    -------------------- 以下 C# ソース -------------------
    try
    {
    String schemaPath1 = "スキーマファイル";
    String documentPath = "XMLファイル";

    XmlValidatingReader reader = new XmlValidatingReader( new XmlTextReader(documentPath) );

    reader.Schemas.Add(null, schemaPath1);

    reader.ValidationType = ValidationType.Schema;
    reader.ValidationEventHandler += new ValidationEventHandler (ValidationHandler);

    XmlDocument doc= new XmlDocument();

    doc.Load(reader);

    for(int i=0; i<_cnt; i++)
    {
    ・・・エラー処理・・・
    }
    }
    catch( Exception ee )
    {
    ・・・エラー処理・・・
    }

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

■6609  Borland C# Builder で検証をかけるとエラー
□投稿者/ サンダル -(2007/08/20(Mon) 15:11:59)

    分類:[XML] 

    ネットよりXMLとスキーマのサンプルをいただき、それに付随していた JavaScript で検証をかけるとエラーにならないのですが
    Borland C# Builder で検証をかけるとエラーになってしまいます。

    XMLのどの部分がよろしくないのかご教授ください。
    (それともXMLパーサー?)

    books.xml (XMLファイル)---------------------------------------------------

    <?xml version="1.0" encoding="Shift_JIS" ?>
    <ym:books xmlns:ym="urn:books">
    <owner address="ABCDEFG@AAA.com">NAME</owner>
    <book isbn="XXXX1-1111-1111-1">
    <name>テスト</name>
    </book>
    </ym:books>

    books.xsd (スキーマファイル1)---------------------------------------------------

    <?xml version="1.0" encoding="Shift_JIS" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <xsd:include schemaLocation="bookSub.xsd" />

    <xsd:element name="books">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="owner" type="ownerType"
    minOccurs="1" maxOccurs="1" />
    <xsd:element name="book" type="bookType"
    minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>

    <xsd:attributeGroup name="bookAttr">
    <xsd:attribute name="isbn" use="required">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:pattern value="XXXX[0-9]{1}-[0-9]{4,5}-[0-9]{3,4}-[0-9]{1}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:attribute>
    </xsd:attributeGroup>

    <xsd:complexType name="bookType">
    <xsd:sequence>
    <xsd:choice>
    <xsd:element name="name" type="xsd:string" />
    <xsd:element name="title" type="xsd:string" />
    </xsd:choice>
    </xsd:sequence>
    <xsd:attributeGroup ref="bookAttr" />
    </xsd:complexType>
    </xsd:schema>

    bookSub.xsd (スキーマファイル2)---------------------------------------------------

    <?xml version="1.0" encoding="Shift_JIS" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="ownerType" mixed="true">
    <xsd:attribute name="address" type="xsd:string" use="required" />
    </xsd:complexType>
    </xsd:schema>

    C# ソース(少し省略) ---------------------------------------------------

    String schemaPath1 = "books.xsd";
    String documentPath = "books.xml";

    XmlValidatingReader reader = new XmlValidatingReader( new XmlTextReader(documentPath) );

    reader.ValidationType = ValidationType.Schema;

    reader.Schemas.Add(null, schemaPath1);

    reader.ValidationEventHandler += new ValidationEventHandler (ValidationHandler);

    XmlDocument doc= new XmlDocument();

    doc.Load(reader);

    richTextBox1.AppendText(String.Format("Validation finished: {0} validation errors\n\n", _ValidationErrorsCount));
    for(int i=0; i<_cnt; i++)
    {
    richTextBox1.AppendText(_msg[i]);
    }

    エラー内容 ---------------------------------------------------


    'urn:books:books' 要素が宣言されていません。 file:///C:/temp/schemas_book_org/books.xml (2 , 2) でエラーが発生しました。

    'owner' 要素が宣言されていません。 file:///C:/temp/schemas_book_org/books.xml (3 , 3) でエラーが発生しました。

    他にも沢山・・・
親記事 /過去ログ17より / 関連記事表示
削除チェック/

■6613  Re[2]: Borland C# Builder で検証を
□投稿者/ サンダル -(2007/08/20(Mon) 17:08:19)
    シャノン さん こんにちは。
    コメントありがとうございます。

    No6611 (シャノン さん) に返信

    > XML Schema で targetNamespace が無いから?

    targetNamespace を付けたらエラーにならなくなりました。

    しかし、JavaScript ではエラーにならないのがよく分かりません。
    パーサーにより、結果が異なっているのでしょうか??

    JavaScript ---------------------------------------------------

    <html>
    <head>
    <title>XML文書の検証</title>
    <script language="JavaScript">
    <!--
    var objScm=new ActiveXObject("MSXML2.xmlSchemaCache.6.0");
    objScm.add("urn:books","C:\\temp\\schemas_book_org\\books.xsd");

    window.alert("add");

    var objDoc=new ActiveXObject("MSXML2.DOMDocument.6.0");
    objDoc.async=false;
    objDoc.schemas=objScm;

    objDoc.load("C:\\temp\\schemas_book_org\\books.xsd");

    window.alert("load");

    var objErr=objDoc.parseError;
    if(objErr.errorCode!=0){
    str=objErr.errorCode + "\r";
    str+=objErr.line + "行 " + objErr.srcText + "\r";
    str+=objErr.reason;
    window.alert(str);
    }
    else
    {
    window.alert("XML文書はスキーマに従っています");
    }
    //-->
    </script>
    </head>
    <body>
    <h1>XML SchemaでXML文書の構文チェック</h1>
    </body>
    </html>

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

■6615  Xercesの使用で未定義エラー(C++Builder6)
□投稿者/ サンダル -(2007/08/20(Mon) 19:15:15)

    分類:[C/C++] 

    こんにちは。よろしくお願いします。

    C++Builder6でXercesを使用しようとしてまして、いきなりコンパイルエラーになり困っております。

    ・xerces-c-src_2_6_0をコンパイル(2_7_0はコンパイルの段階でエラーになったのでやめました)
    ・インクルードパスに (xercesのパス)\xerces-c-src_2_6_0\src を追加
    ・プロジェクトに追加で (xercesのパス)\Build\Win32\BCB6\XercesLib.lib を追加

    ソース------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop

    #include "Unit1.h"

    #include <xercesc/sax2/XMLReaderFactory.hpp>
    #include <xercesc/sax2/SAX2XMLReader.hpp>
    #include <xercesc/sax2/DefaultHandler.hpp>

    #include <xercesc/util/XMLUni.hpp>

    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;

    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
    }


    エラー内容--------------------------------------------------------------------
    [C++ エラー] Unit1.cpp(30): E2451 未定義のシンボル SAX2XMLReader
    [C++ エラー] Unit1.cpp(30): E2451 未定義のシンボル parser
    [C++ エラー] Unit1.cpp(30): E2090 型限定子 'XMLReaderFactory' がクラス名または名前空間名ではない
    [C++ エラー] Unit1.cpp(30): E2379 ステートメントにセミコロン(;)がない


    原因の分かる方、ご教授願います。
親記事 /過去ログ17より / 関連記事表示
削除チェック/

■6700  Re[7]: DataTableの次の行について
□投稿者/ 特攻隊長まるるう -(2007/08/22(Wed) 13:17:23)
    2007/08/22(Wed) 14:29:11 編集(投稿者)

    No6697 (ぽぴ王子 さん) に返信
    ん。。。もちろん、怒ってるわけではないですし、なんとなくの理解でも問題がなさそうな
    質問ならつっこみはいれません。解決してるのを引き伸ばしてるのには理由があります。
    バグが残りやすい部分だからです。どこでバグが残りやすいか分かってますか?と確認
    したいだけです。

    >ループの中で削除し、削除をすればi--をし、Rows.Countとiがイコールになればループを抜けるという処理をして解決です。
    うん、プログラム自体はそうなんだけど、実際の動きで問題となる2点が理解できている
    かどうか?が重要です。
    1点目は、削除されたアイテム数だけインデックスがずれるということ。
    2点目は、ずれたインデックスでループを回すとループ処理が実行されないアイテムが
    できるということ。

    コードで i-- を入れれば。。。という理解ではなくて、例えばうまくいかなかった時点で
    以下のような動きを紙に書いて、どこに問題があるか見つけられるか?ということ。

    (index)アイテム名
    ------------------------------
     (0)アイテム0
     (1)アイテム1
     (2)アイテム2
     (3)アイテム3

    ループカウント(0)
     (0)アイテム0<チェック(削除条件満たさずそのまま)
     (1)アイテム1
     (2)アイテム2
     (3)アイテム3

    ループカウント(1)
     (0)アイテム0
     (1)アイテム1<チェック(削除条件満たす)
     (2)アイテム2
     (3)アイテム3

    ループカウント(1)(アイテム1削除)
     (0)アイテム0
     (1)アイテム2
     (2)アイテム3

    ループカウント(2)
     (0)アイテム0
     (1)アイテム2
     (2)アイテム3<チェック

    ※アイテム2がチェックされていない

    削除後にインデックスを減らす処理で同じような図を書いて、
    問題点が解決されていることを確かめてください。
    >そこでDataTableの次の行がないときループを抜けるという処理を入れようと思うのですが
    この方法ではバグが残りますよね?。。。理解できましたか?

    # 分類が[VB.NET/VB2005]だけどC#も分かるんだよね?
    >  for (int i = 0; i < dtRows.Count; i++)
    毎回、dtRows.Count が評価しなおされるなら正常に処理できます。これが
      intCount = dtRows.Count
      for (int i = 0; i < intCount; i++)
    のような動きではだめです。

    処理系によってはあるのですよ。ループの終了条件が初回のみ評価されて
    2回目以降にループ内で変更した値が反映されないのが。
    ↓ちょうどこんな質問を見つけました。
    http://rucio.bbs.coocan.jp/?m=listthread&t_id=13&summary=on

    ま、その場合は
    (1)ループカウンタとは別に削除したアイテム数を変数に覚えておいて、ループ内の
    処理でループカウンタから削除したアイテム数分引いたインデックスを持つアイテム
    に対して処理をする。
    ↑これならループカウンタには変更を加えず、先頭から処理できます。

    ちょっと頭を使えば、インデックスが変更されるのは削除したアイテムより
    後ろのアイテムのみだから、
    (2)リストの最後からループを逆に回す。(ぽぴ王子さんの方法)

    などがあるということです。
記事No.6685 のレス / END /過去ログ17より / 関連記事表示
削除チェック/

■6715  VB2005からDLL(VC6.0)への配列渡しについて
□投稿者/ onon -(2007/08/22(Wed) 17:35:06)

    分類:[VB.NET/VB2005] 

    VB2005からDLL(VC6.0)へ配列を渡したいのですが、
    VB2005では、配列がメモリ上で連続していない(配列は参照型)ため、
    下記コード「hoge(num(0), 5)」で、numの先頭ポインタがDLLに渡って、
    配列1番目の実体は取り出せるが、配列2番目以降が連続していないため、取りだせない

    ---<VB2005>---------------------------------------------------------------------------
    Private Declare Function hoge Lib "hogehoge.dll" (ByRef IntPtr as Integer, _
    ByVal Num as Integer) as Integer
    Public Class mahi
    :

    Public Sub mahimahi()

    dim sum as Integer
    dim num(4) as Integer = {1, 2, 3, 4, 5}

    'hogeはnum配列の加算結果を返す
    sum = hoge(num(0), 5)
    end Sub
    end Class
    ----------------------------------------------------------------------------

    VB2005で、配列を連続するメモリで確保する方法はありますか?

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

■6771  DataGridViewのヘッダの結合
□投稿者/ Ri -(2007/08/23(Thu) 16:10:31)

    分類:[.NET 全般] 

    お世話になります。

    DataGridViewのヘッダを結合したいですが、

    A | B
    -------------------
    1 | 1 | 1
    2 | 2 | 2
    3 | 3 | 3
    --------------------

    以上のスタイルはどうすれば実現できますか。
親記事 /過去ログ17より / 関連記事表示
削除チェック/

■6743  Re[4]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 -(2007/08/23(Thu) 08:58:51)
    すみません。
    質問の仕方が悪かった様子です。
    再度説明させて頂きますと、我が社ではCOBOLによる
    大規模なシステムを長年構築してきましたが、それをUNIX
    及びPCにダウンサイジングしました。
    データは殆どシーケンスファイルですのでこれをテキストファ
    イルにして今後も活用しようとしています。尚、数値項目は
    COMP−3で保管しており、5バイト 数値=170の場合
    ----+-----
    00010
    0007c
    ----------
    で保管されています。
    これをVBで読み込み及び更新をしたいのです。
    何方か良い方法をご存知ないでしょうか?
記事No.6593 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6745  Re[5]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ y4yama -(2007/08/23(Thu) 09:12:02)
    No6743 (ダウンサイジング苦労 さん) に返信
    数値項目は
    > COMP−3で保管しており、5バイト 数値=170の場合
    > ----+-----
    > 00010
    > 0007c
    > ----------
    > で保管されています。
    > これをVBで読み込み及び更新をしたいのです。

    Packed10進で、4bitずつ(を1桁)で並べたら、000000170c となるのですね
    1byte毎ででも力ずくで計算すれば、できそうだし・・・VBは?.netなの?
     >良い方法 <どこがわからないのでしょうか?
記事No.6593 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6747  Re[6]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ れい -(2007/08/23(Thu) 09:19:22)
    No6745 (y4yama さん) に返信
    > ■No6743 (ダウンサイジング苦労 さん) に返信
    >>----+-----
    >>00010
    >>0007c
    >>----------

    これを

    > Packed10進で、4bitずつ(を1桁)で並べたら、000000170c となるのですね

    こう読めるのはすばらしい読解力だと思った。

    COMP-3もBCDも知っているのに読めませんでした。
    縦に読むのかな?かな?
記事No.6593 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6741  Re[4]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 -(2007/08/23(Thu) 08:50:45)
    > 基本的にCOBOLにテキストファイルは無いはず。
    すみません。詳細をもう少し申し上げると、我が社ではIBM(汎用機)で
    COBOLによる大規模なシステム開発を行っていました。尚、データの保
    存はシーケンスファイル及びVSAMファイルで行ってきました。
    このシステムをダウンサイジングし、シーケンスファイルはテキストファイ
    ルへVSAMはそのままVSAMかオラクルに置き換えました。
    シーケンスファイルの数値はCOMP−3が多く
    たとえば 5バイトCOMP−3で数値=110の場合
    ----+----+----
     00010 
    0001c
    ----+----+----
    となっています。
    このデータをVBで110と読み込んだり、逆に120に更新したいのです。
    何方かご存知の方、教えて下さい。
記事No.6593 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6742  Re[5]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 -(2007/08/23(Thu) 08:52:16)
    No6741 (ダウンサイジング苦労 さん) に返信
    すみません数値の表示がずれてしまいました。
    正確には
    ----+----+----
    00010 
    0001c
    です。
記事No.6593 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6679  Re[1]: 手書きのコントロールについて
□投稿者/ επιστημη -(2007/08/21(Tue) 23:46:45)
>
    // ------- 一例 -------
    
            private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < 5; i++)
                {
                    RadioButton radio = new RadioButton();
                    radio.Text = i.ToString();
                    radio.Tag = i;
                    radio.Location = new Point(10, 10 + i * 30);
                    radio.Click += radio_Click;
                    Controls.Add(radio);
                }
    
            }
            private void radio_Click(object sender, EventArgs e)
            {
                textBox1.Text = string.Format("{0}を選んだね", ((RadioButton)sender).Tag.ToString());
            }
        }
    
記事No.6676 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6927  Re[3]: ボタン操作でタブと同様の操作を行う
□投稿者/ 魔界の仮面弁士 -(2007/08/27(Mon) 15:28:15)
    2007/08/27(Mon) 15:40:08 編集(投稿者)

    No6925 (皆口 さん) に返信
    > 下記で試したところ、常にそのボタンの次の場所のみにフォーカスが当たるようになってました。

    はつねさんは、
    > > 現在フォーカスがあるコントロールの次のコントロール
    と書かれています。

    通常、ボタンを押したときにはそのボタンがアクティブなコントロールになりますので、
    どうしてもボタンでやるなら、Windows の[スクリーン キーボード]のような
    特殊な対応が必要になるかと思います。

    方法は幾つかあるでしょうけれども、たとえば、

     (案1) 直前にアクティブであったコントロールに対して SelectNextControl する。
     (案2) ボタンがフォーカスを受け取らないようにしておく。

    とか。


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

    Foo[] bar = { new Foo(), new Foo() };
    private void Form1_Load(object sender, EventArgs e)
    {
    bar[0].Text = "Tab";
    bar[0].Size = new Size(80, 30);
    bar[0].Location = new Point(8, 8);
    bar[0].Click += delegate { SelectNextControl(ActiveControl, true, true, true, true); };

    bar[1].Text = "Shift+Tab";
    bar[1].Size = new Size(80, 30);
    bar[1].Location = new Point(88, 8);
    bar[1].Click += delegate { SelectNextControl(ActiveControl, false, true, true, true); };

    Controls.AddRange(bar);
    }
    }

    class Foo : Button
    {
    public Foo() { base.SetStyle(ControlStyles.Selectable, false); }
    }
記事No.6919 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6933  Re[4]: ボタン操作でタブと同様の操作を行う
□投稿者/ 皆口 -(2007/08/27(Mon) 16:31:37)
    動きました。魔界の仮面弁士さんのソースを参考にさせていただきたいと思います。
    ありがとうございました。

    No6927 (魔界の仮面弁士 さん) に返信
    > 2007/08/27(Mon) 15:40:08 編集(投稿者)
    >
    > ■No6925 (皆口 さん) に返信
    >>下記で試したところ、常にそのボタンの次の場所のみにフォーカスが当たるようになってました。
    >
    > はつねさんは、
    >>> 現在フォーカスがあるコントロールの次のコントロール
    > と書かれています。
    >
    > 通常、ボタンを押したときにはそのボタンがアクティブなコントロールになりますので、
    > どうしてもボタンでやるなら、Windows の[スクリーン キーボード]のような
    > 特殊な対応が必要になるかと思います。
    >
    > 方法は幾つかあるでしょうけれども、たとえば、
    >
    >  (案1) 直前にアクティブであったコントロールに対して SelectNextControl する。
    >  (案2) ボタンがフォーカスを受け取らないようにしておく。
    >
    > とか。
    >
    >
    > //-------------------
    > public partial class Form1 : Form
    > {
    > public Form1()
    > {
    > InitializeComponent();
    > }
    >
    > Foo[] bar = { new Foo(), new Foo() };
    > private void Form1_Load(object sender, EventArgs e)
    > {
    > bar[0].Text = "Tab";
    > bar[0].Size = new Size(80, 30);
    > bar[0].Location = new Point(8, 8);
    > bar[0].Click += delegate { SelectNextControl(ActiveControl, true, true, true, true); };
    >
    > bar[1].Text = "Shift+Tab";
    > bar[1].Size = new Size(80, 30);
    > bar[1].Location = new Point(88, 8);
    > bar[1].Click += delegate { SelectNextControl(ActiveControl, false, true, true, true); };
    >
    > Controls.AddRange(bar);
    > }
    > }
    >
    > class Foo : Button
    > {
    > public Foo() { base.SetStyle(ControlStyles.Selectable, false); }
    > }
記事No.6919 のレス / END /過去ログ17より / 関連記事表示
削除チェック/

■6908  GCの対象について
□投稿者/ あら -(2007/08/27(Mon) 09:33:01)

    分類:[C#] 

    お世話になっております。
    Form1からForm2、Form3を表示させ、Form3で設定した値をForm2で使用しようとしています。

    下記のようなコードで、Form3で入れた値は、Form1が終了するまで保持されるものなのでしょうか?
    それとも、GCの対象となるのでしょうか?
    (.NET2005 C#)

    ご教授お願いします。

    ------------------------------
    【Form1】
    public partial class Form1 : Form
    {
    public Class1 c1 = new Class1();

    public Form1()
    {
    InitializeComponent();

    }

    private void button1_Click(object sender, EventArgs e)
    {
    Form2 f2 = new Form2(this);
    f2.Show();
    }

    private void button2_Click(object sender, EventArgs e)
    {
    Form3 f3 = new Form3(this);
    f3.Show();
    }
    }

    【Form2】
    public partial class Form2 : Form
    {
    private Form1 manageForm;

    public Form2(Form1 f1)
    {
    InitializeComponent();
    manageForm = f1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    //値を取得
    label1.Text = (manageForm.c1.classA.I).ToString();
    }
    }

    【Form3】
    public partial class Form3 : Form
    {
    public Form1 manageForm;

    public Form3(Form1 f1)
    {
    InitializeComponent();
    manageForm = f1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    //値を設定
    manageForm.c1.classA.I = 145;
    }
    }

    【Class1】
    //値を保持するクラス
    public class Class1
    {
    public ClassA classA = new ClassA();
    public class ClassA
    {
    private int _i;
    public int I
    {
    get { return _i; }
    set { _i = value; }
    }
    }
    }
親記事 /過去ログ17より / 関連記事表示
削除チェック/

■7001  タブコントロール内のプロパティの保存について
□投稿者/ あら -(2007/08/28(Tue) 16:11:15)

    分類:[C#] 

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

    アプリケーション終了時の設定を保存しておいて、次回起動した時に前回の保存した設定
    を取得しようとしています。

    下記のように記述した場合、tabPage2にはデフォルトでチェックボックスのCheckedプロパティ
    をTrueに設定しているのですが、tabPage2を選択しないでアプリケーションを終了させ、設定
    が保存されたファイルを確認するとfalseとして保存されています。
    ※tabPage2を一度選択して終了させた場合は設定している値が保存されます。

    どのように記述すれば、正しく保存されるのでしょうか?
    (.NET2005 C#)

    ご教授、アドバイス等宜しくお願いします。


    ------------------------------------------------------------
    Form1にページが2つのTabControlがあり、tabPage1にcheckBox1、tabPage2にcheckBox2を配置し、
    checkBoxのApplicationSettingsでcheckBox1、2共にTrueをデフォルトで設定しています。

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

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
    Properties.Settings.Default.chBox1 = this.checkBox1.Checked;
    Properties.Settings.Default.chBox2 = this.checkBox2.Checked;

    Properties.Settings.Default.Save();
    }
    }
親記事 /過去ログ18より / 関連記事表示
削除チェック/

■7104  デバッグができない
□投稿者/ どっとねっと -(2007/08/30(Thu) 12:11:15)

    分類:[VB.NET/VB2005] 

    初心者です。
    よろしくお願いします。

    OS:WindowsXP Home Edition
    開発環境:Visual Studio2003 .Net

    VB.NETでアプリケーションを開発しています。
    ビルドの際に、Visual Studio上では問題なく終了するのですが、実際にdebugフォルダに生成されたEXEファイルを実行すると下記のようなエラーが発生してアプリが起動できません。

    例外:’System.InitializationException’が ○○.exeで発生しました。

    そして調べてみると、下記のメッセージを見つけました。

    ----------------------------------------------------------------------------------------------------------
    'System.TypeInitializationException' のハンドルされていない例外が 不明なモジュールです。 で発生しました。

    追加情報 : "○○.initialize" のタイプ初期化子が例外をスローしました。
    ----------------------------------------------------------------------------------------------------------

    ちなみに、initializeクラスでは、フォームを持ち回り変数に格納する作業をしています。

    Public Class initialize
    Public Shared f1 As Form1 = New Form1

    Shared Sub Main()
    Dim f1 As Form1 = New Form1
    Try
    Application.Run(f1)
    Catch
    End Try
    End Sub

    End Class

    情報に不備があるかとは思いますが、原因がお解かりになる方いらっしゃいましたらよろしくお願いします。
親記事 /過去ログ18より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

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

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

パスワード/

- Child Tree -