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

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

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

全過去ログを検索

<< 0 >>
■6648  Re[3]: GetGlyphOutline
□投稿者/ ダッチ -(2006/09/20(Wed) 21:03:12)

    分類:[C#] 

    No6647に返信(シンさんの記事)
    > DWORD GetGlyphOutline(
    > HDC hdc, //
    > UINT uChar, //
    > UINT uFormat, //
    > LPGLYPHMETRICS lpgm, //
    > DWORD cbBuffer, //
    > LPVOID lpvBuffer,//
    > CONST MAT2 *lpmat2 //
    > );
    >
    > GetGlyphOutlineのWinAPI関数を呼び出すときC#にない型が存在しますが
    > どのように型をC#に合わせればいいのでしょうか?

    API の定義で困ったら

    Pinvoke.net
    http://www.pinvoke.net/default.aspx/gdi32/GetGlyphOutline.html

    というサイトがあります。
    こちらにさまざまな API の定義や
    API を使用したサンプルコードなどがありますので
    ぜひ利用して見てください。

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

■43829  Re[2]: .NET向けの処理系を知りたい
□投稿者/ 中博俊 -(2009/11/19(Thu) 17:27:16)
    あ、Silverlightも忘れてた
記事No.43826 のレス /過去ログ75より / 関連記事表示
削除チェック/

■54080  Re[2]: VS2010でベースフォームにコントロールを置いたら警告が出
□投稿者/ kaya -(2010/10/04(Mon) 20:35:48)
    No54078 (囚人 さん) に返信
    > 試してみましたが、エラーになりませんね。何か他に条件あるのかな?

    さっそくのご回答ありがとう御座います。

    情報の少なさから見ても、やはり環境による稀な現象みたいですね・・・。

    とりあえずVS2010は評価版を使用していると言うことと、VS2005Team Edが既にインストールされている、
    その他ソフトは沢山入っている・・・くらいでしょうか。

    VS2010は特殊なオプション設定等はしておらず、ほぼ初期設定に近い状態で、さらに最初に記載した操作も、

    プロジェクトの作成→項目の追加→コントロールの配置→デザイナ開かず

    とこれくらい最低限の操作で発生しました。
記事No.54077 のレス /過去ログ90より / 関連記事表示
削除チェック/

■64227  Re[4]: テーブルの結合
□投稿者/ howling -(2012/11/14(Wed) 11:58:41)
    shu さん

    > PHPを触っていないのとSQLが分からないのは関係ないきがします。
    > PHPでなくともSQL文によるDBアクセスは可能です。

    ごもっともですね。
    やや、書き方が悪かったです。
    よくPHPでSQL文を使ってDBアクセスしていたのですが、
    逆にPHP以外でSQL文を使ったことと言うとPoderosaを使って少し触った程度だった物でして、
    SQLと聞いてPHPを連想してしまいました。
    申し訳ありません。
記事No.64145 のレス /過去ログ108より / 関連記事表示
削除チェック/

■82786  次のメソットまたは、プロパティ間で呼び出しが不適切です
□投稿者/ ともや -(2017/02/04(Sat) 16:08:49)

    分類:[C#] 

    開発環境 Visual Studio Express2015 for Windows desktop
    使用言語 C#
    参考本 基礎からきちんと知りたい人のC#プログラミング入門(日経ソフトウエア 原田英生 著)

    C#プログラミングをはじめて勉強しています。
    参考本のステップ順にコードを記述していますが、
    74〜83行目のコードを記述すると、
    70,97,100行目のLoadFileの下部に赤い波線が表示され、
    赤い波線部にポインターを合わせると下記の内容が表示されます。

    void Form1.loadFile(string value)
    次のメソットまたは、プロパティ間で呼び出しが不適切です:
    ’Form1.LoadFile(string)'と'Form1.LoadFile(string)'

    コードの記述に何か問題があるのでしょうか。
    分かる方が居ましたら、教えていただけないでしょうか。


    1 //テキストエディター(印刷機能付き)
    2
    3 using System;
    4 using System.Collections.Generic;
    5 using System.ComponentModel;
    6 using System.Data;
    7 using System.Drawing;
    8 using System.Linq;
    9 using System.Text;
    10 using System.Threading.Tasks;
    11 using System.Windows.Forms;
    12
    13 namespace MyMemo {
    14 public partial class Form1 : Form {
    15
    16 const string ApplicationName = "MyMemo";
    17
    18 private string FileNameValue;
    19 private string FileName {
    20 get { return FileNameValue; }
    21 set {
    22 FileNameValue = value;
    23 Edited = false;
    24 }
    25 }
    26
    27 private bool EditedValue;
    28 private bool Edited {
    29 get { return EditedValue; }
    30 set {
    31 EditedValue = value;
    32 UpdateStatus();
    33 }
    34 }
    35
    36 private void UpdateStatus() {
    37 string s = ApplicationName;
    38 if (FileName != "")
    39 s += " - " + FileName;
    40 if (Edited) s += " (変更あり) ";
    41 this.Text = s;
    42
    43 if (FileName == "" || !Edited)
    44 MenuItemFileSave.Enabled = false;
    45 else
    46 MenuItemFileSave.Enabled = true;
    47
    48 if (!Enabled)
    49 MenuItemFileSaveAs.Enabled = false;
    50 else
    51 MenuItemFileSaveAs.Enabled = true;
    52 }
    53
    54 public Form1() {
    55 InitializeComponent();
    56 }
    57
    58 private void Form1_Load(
    59 object sender, EventArgs e) {
    60
    61 FileName = "";
    62 textBoxMain.Multiline = true;
    63 textBoxMain.ScrollBars = ScrollBars.Vertical;
    64 textBoxMain.Dock = DockStyle.Fill;
    65 saveFileDialog1.Filter =
    66 "テキスト文書|*.txt|すべてのファイル|*.*";
    67
    68 if (1 < Environment.GetCommandLineArgs().Length) {
    69 string[] args = Environment.GetCommandLineArgs();
    70 LoadFile(args[1]);
    71 }
    72 }
    73
    74 private void LoadFile(string value) {
    75 if (System.IO.File.Exists(value)) {
    76 textBoxMain.Text = System.IO.File.ReadAllText(
    77 value, System.Text.Encoding.GetEncoding("Shift_JIS"));
    78 textBoxMain.Select(0, 0);
    79 FileName = value;
    80 }
    81 else
    82 MessageBox.Show(value + "が見付かりません", ApplicationName);
    83 }
    84
    85 private void MenuItemFileExit_Click(
    86 object sender, EventArgs e) {
    87
    88 this.Close();
    89 }
    90
    91 private void MenuItemFileOpen_Click(
    92 object sender, EventArgs e) {
    93
    94 openFileDialog1.FileName = "";
    95 if (DialogResult.OK ==
    96 openFileDialog1.ShowDialog())
    97 LoadFile(openFileDialog1.FileName);
    98 }
    99
    100 private void LoadFile(string value) {
    101 textBoxMain.Text = System.IO.File.ReadAllText(
    102 value, System.Text.Encoding.GetEncoding(
    103 "Shift_JIS"));
    104
    105 FileName = value;
    106 }
    107
    108 private void MenuItemFileSaveAs_Click(
    109 object sender, EventArgs e) {
    110
    111 saveFileDialog1.FileName = System.IO.Path.GetFileName(FileName);
    112
    113 if (DialogResult.OK == saveFileDialog1.ShowDialog())
    114 SaveFile(saveFileDialog1.FileName);
    115 }
    116
    117 private void SaveFile(string value) {
    118 System.IO.File.WriteAllText(value, textBoxMain.Text,
    119 System.Text.Encoding.GetEncoding("Shift_JIS"));
    120
    121 textBoxMain.Select(0, 0);
    122
    123 FileName = value;
    124 }
    125
    126 private void MenuItemFileSave_Click(
    127 object sender, EventArgs e) {
    128
    129 SaveFile(FileName);
    130 }
    131
    132 private void textBoxMain_TextChanged(object sender, EventArgs e) {
    133 Edited = true;
    134 }
    135 }
    136 }
親記事 /過去ログ141より / 関連記事表示
削除チェック/

■86193  Re[11]: DateTimePickerでのクリックイベント
□投稿者/ WebSurfer -(2017/12/23(Sat) 10:37:32)
    No86188 (ちょこじー さん) に返信

    > VBとC#でそれほど違いはあるとは思えないのですが

    DateTimePicker で Click イベントが使えない理由は Hongliang さんに No86189 で、
    C# と VB.NET のイベントハンドラ設定の違いについては魔界の仮面弁士さんに No86192
    説明していただけたのでそちらを見ていただくとして、

    > Visual Studioは2017をお使いでしょうか?

    Visual Studio Community 2015 Update 3 です。

    今回のような DateTimePicker など特定のコントロールの限った話の場合、違いが出るとす
    ると、C# or VB.NET の違いと .NET のバージョンの違いが可能性が高いと思います。

    テンプレートを使ってプロジェクト(ASP.NET Web アプリとかの)を作る場合は、Visual
    Studio のバージョンの違いも大きな影響がありますが・・・
記事No.86178 のレス /過去ログ147より / 関連記事表示
削除チェック/

■86192  Re[9]: DateTimePickerでのクリックイベント
□投稿者/ 魔界の仮面弁士 -(2017/12/23(Sat) 08:55:45)
    2017/12/23(Sat) 14:25:13 編集(投稿者)

    No86186 (ちょこじー さん) に返信
    > 自分では明示的にアタッチ文を書いていないので、デフォルトの設定で入っていたのでしょうか・・・?

    DateTimePicker1_Enter などといったイベントハンドラーをアタッチする場合、
    C# の場合はオブジェクトに対してイベントハンドラを += で割り当てる言語仕様ですが、
    VB の場合は逆で、イベントハンドラに対してオブジェクトを割り当てる言語仕様です。


    具体的には、Visual Basic の場合

      Private Sub DateTimePicker1_Enter(sender As Object, _
         e As EventArgs) Handles DateTimePicker1.Enter

    のように、末尾に『Handles 対象オブジェクト.イベント名』の宣言があり、
    これによってイベントのアタッチが行われるということです。

    この Handles 句による割り当ては、Visual Studio によって自動的に行われます。


    また、たとえばこれを、『Handles DateTimePicker1.Enter, DateTimePicker2.Enter』とすれば
    DatePicker1 と DatePicker2 の両方のイベントを一か所にまとめることさえできます。

    引数の型に互換性があれば、異なる種類のコントロールやイベントをまとめることもできますので
     Sub Hoge(sender As Object, e As EventArgs) Handles Button1.Click, TextBox1.TextChanged
    などといったことさえ可能です。


    もし、イベント処理を使う必要がなくなった場合は、この Sub 〜 End Sub の処理を
    Handles 句も含めて丸ごと削除すれば、イベントの割り当ても自動解除されます。


    これが C# だと、割り当てや解除を += や -= という演算子で行う言語仕様になっています。
    フォームデザイナーからだと、Form1.Desinger.cs ファイル内に自動的に
      DateTimePicker1.Enter += DateTimePicker1_Enter;
    に相当するコードが記載されることになります。
    左辺の「オブジェクト.イベント」に対して、右辺の「イベントハンドラ」が割り当てられます。


    それゆえ C# の場合、void DateTimePicker1_Enter(…) の処理が不要になったからと言って、
    不要になったイベントハンドラを不用意に削除してしまうと、.Designer.cs 側での
    アタッチコードが残ってしまい、「DateTimePicker1_Enter が見つからない!」ということで
    不整合を起こしてエラーになってしまうのですが、VB ではその心配が無いですね。


    ちなみに VB で Handles 句を使うためには、その変数が
      Friend WithEvents DateTimePicker1 As DateTimePicker
    のように、「WithEvents 句」付きで宣言されている必要があるのですが、
    フォームにコントロールを張り付けた場合、自動的に WithEvents 句付きの宣言が
    Form1.Desinger.vb ファイル内に自動生成されるので、普段は意識する必要がありません。



    一方、WebSurfer さんが書かれた AddHandler ステートメントですが、これが必要になるのは
    イベントの割り当てをフォームデザイナーによる自動割り当てに任せることなく、
    プログラムから明示的に、アタッチ操作を行いたい場合に限定されます。
    なので、AddHandler + AddressOf が必要になるのは、やや特殊なケースですね。
    (ちなみにでデタッチは RemoveHandler ステートメントです)


    ただし、デザイン時専用プロパティである「GenerateMember プロパティ」を
    True から False に変更していた場合には、Visual Basic (の 2005 以降) は
    WithEvents + Handles による標準的な割り当ての代わりに、
    AddHandler + AddressOf による割り当てを Form1.designer.vb に記述するようになっています。
記事No.86178 のレス /過去ログ147より / 関連記事表示
削除チェック/

■93382  Re[2]: 「接続文字列」を変数に格納
□投稿者/ たかし -(2019/12/09(Mon) 12:25:26)
    No93381 (KOZ さん) に返信
    > 2019/12/08(Sun) 22:00:04 編集(投稿者)
    >
    > ■No93362 (たかし さん) に返信
    >><connectionStrings>
    >> <add name="**********.My.MySettings.**********_SQLConnectionString"
    >> connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=**********SQL;Integrated Security=True"
    >> providerName="System.Data.SqlClient" />
    >> </connectionStrings>
    >
    > System.Configuration を参照設定して
    >
    > Imports System.Data.Common
    > Imports System.Configuration
    >
    > Const connectionName As String = "**********.My.MySettings.**********_SQLConnectionString"
    > Dim config As ConnectionStringSettings =
    > ConfigurationManager.ConnectionStrings(connectionName)
    >
    > としておいて
    >
    > Dim factory As DbProviderFactory = DbProviderFactories.GetFactory(config.ProviderName)
    > Dim con As DbConnection = factory.CreateConnection()
    > con.ConnectionString = config.ConnectionString
    > con.Open()
    >
    > もしくは
    >
    > Dim cn As New SqlClient.SqlConnection
    > cn.ConnectionString = config.ConnectionString
    > cn.Open()
    >
    > でどうでしょうか。
    >

    質問の趣旨をこの辺でもう一度はっきりさせたいと思います。
    「接続文字列」を変数に格納するにはどうしたらよいか?
    その一点です。

    変数を用いずにダイレクトに次のように記載すると正常に動きます。
    cn.ConnectionString = "Data Source=(local)\SQLEXPRESS;Initial Catalog=**********SQL;Integrated Security=True"

    ところが、

    Dim 接続文字列 As String

    接続文字列 = Form1.接続文字列TextBox.Text
    cn.ConnectionString = 接続文字列

    というコードではエラーになる。
    これのどこが間違えているのか?
    そこが知りたいのです。
    ちなみにcn.Open()のエラーのメッセージは
    「System.InvalidOperationException: 'ConnectionString プロパティは初期化されていません。'」
    というものです。

    その線でアドバイスが頂けるとありがたいです。

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



<< 0 >>

パスワード/

- Child Tree -