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

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

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

全過去ログを検索

<< 0 >>
■43465  Re[1]: チャートを作る方法
□投稿者/ やじゅ -(2009/11/11(Wed) 01:36:57)
>
記事No.43462 のレス /過去ログ74より / 関連記事表示
削除チェック/

■87101  Re[1]: フォームを常に全面にし、操作だけは背面の画面に反映
□投稿者/ 魔界の仮面弁士 -(2018/04/11(Wed) 21:45:15)
    No87094 (対中率 さん) に返信
    > フォームを最前面にしつつ、キーボードやマウス操作のみ背面に反映する方法はないでしょうか。

    枠線部もマウス操作を受け付けない方が良いでしょうか?


    private void button1_Click(object sender, EventArgs e)
    {
     var fw = new FrameWindow();
     fw.SetBounds(50, 100, 350, 250);
     fw.Show(this);
    }


    private class FrameWindow : Form
    {
     protected override CreateParams CreateParams
     {
      get
      {
       const int WS_EX_NOACTIVATE = 0x8000000; // アクティブにならないフォームにする
       const int WS_EX_TRANSPARENT = 0x20; // マウス操作を透過(要レイヤードウィンドウ)
       var cp = base.CreateParams;
       cp.ExStyle |= WS_EX_TRANSPARENT | WS_EX_NOACTIVATE;
       return cp;
      }
     }
     public FrameWindow()
     {
      ShowInTaskbar = false;
      TopMost = true;
      BackColor = Color.Blue; // 枠線色
      Padding = new Padding(9); // 枠線幅
      FormBorderStyle = FormBorderStyle.None;
      Controls.Add(new Control() { BackColor = Color.Magenta, Dock = DockStyle.Fill });

      // WS_EX_TRANSPARENT を有効にするには、
      // TransparencyKey をセットするか、もしくは
      // Opacity を 1.0 未満にする必要がある
      TransparencyKey = Color.Magenta;
     }
    }
記事No.87094 のレス /過去ログ149より / 関連記事表示
削除チェック/

■87109  Re[2]: フォームを常に全面にし、操作だけは背面の画面に反映
□投稿者/ 対中率 -(2018/04/12(Thu) 01:27:04)
    魔界の仮面弁士さんありがとうございます!
    希望通りの動作を100%実現することができました!
    助かりました



    No87101 (魔界の仮面弁士 さん) に返信
    > ■No87094 (対中率 さん) に返信
    >>フォームを最前面にしつつ、キーボードやマウス操作のみ背面に反映する方法はないでしょうか。
    >
    > 枠線部もマウス操作を受け付けない方が良いでしょうか?
    >
    >
    > private void button1_Click(object sender, EventArgs e)
    > {
    >  var fw = new FrameWindow();
    >  fw.SetBounds(50, 100, 350, 250);
    >  fw.Show(this);
    > }
    >
    >
    > private class FrameWindow : Form
    > {
    >  protected override CreateParams CreateParams
    >  {
    >   get
    >   {
    >    const int WS_EX_NOACTIVATE = 0x8000000; // アクティブにならないフォームにする
    >    const int WS_EX_TRANSPARENT = 0x20; // マウス操作を透過(要レイヤードウィンドウ)
    >    var cp = base.CreateParams;
    >    cp.ExStyle |= WS_EX_TRANSPARENT | WS_EX_NOACTIVATE;
    >    return cp;
    >   }
    >  }
    >  public FrameWindow()
    >  {
    >   ShowInTaskbar = false;
    >   TopMost = true;
    >   BackColor = Color.Blue; // 枠線色
    >   Padding = new Padding(9); // 枠線幅
    >   FormBorderStyle = FormBorderStyle.None;
    >   Controls.Add(new Control() { BackColor = Color.Magenta, Dock = DockStyle.Fill });
    >
    >   // WS_EX_TRANSPARENT を有効にするには、
    >   // TransparencyKey をセットするか、もしくは
    >   // Opacity を 1.0 未満にする必要がある
    >   TransparencyKey = Color.Magenta;
    >  }
    > }
記事No.87094 のレス / END /過去ログ149より / 関連記事表示
削除チェック/

■96596  SerialPort 受信できない
□投稿者/ tkit -(2020/12/23(Wed) 16:55:30)

    分類:[C#] 

    初めて、C#にて、計測器とRS232C接続し、計測値を取得するアプリを作成中です。
    計測器に送信コマンドを送ると既定の動作をするのですが、
    [*IDN?]コマンドでIDを受信するのですが、受信できません。
    TeraTermでは、送受信可能でしたので、コードの問題です。
    C#にて受信できないまま終了後、TeraTerm接続で受信内容が表示されます。
    ですので、送信は問題ないのですが、受信ができない状況です。
    SerialPort設定は、C#、TeraTerm共通です。

    解決するため、お力をお貸しください。


    環境
    Win10 64bit
    VisualStudio2019
    .NETFramework,Version=v4.7.2
    接続:PC-USB_COM変換-インターリンクケーブル-Agilent_34401A



    コード


    using System;
    using System.Text;

    namespace ConsoleApp1
    {
    class Program
    {
    static void Main(string[] args)
    {
    Component1 COM = new Component1();
    COM.Open();
    COM.Send();
    Console.WriteLine("WAIT");
    Console.ReadKey();
    //COM.Receive();
    COM.Close();
    }
    }
    }

    using System;
    using System.ComponentModel;
    using System.IO.Ports;
    using System.Text;

    namespace ConsoleApp1
    {
    public partial class Component1 : Component
    {

    public Component1()
    {
    InitializeComponent();
    serialPort1.PortName = "COM6";
    serialPort1.BaudRate = 9600;
    serialPort1.DataBits = 8;
    serialPort1.Parity = Parity.None;
    serialPort1.StopBits = StopBits.One;
    serialPort1.ReadTimeout = 2000;
    serialPort1.NewLine = "\n";
    }

    public Component1(IContainer container)
    {
    container.Add(this);

    InitializeComponent();
    }

    public void Open()
    {
    if (serialPort1.IsOpen)
    {
    serialPort1.Close();
    Console.WriteLine("既に開いています。");
    return;
    }
    serialPort1.Open();
    Console.WriteLine("OPEN");
    }

    public void Send()
    {
    try
    {
    serialPort1.Write("*IDN?" +"\n");
    Console.WriteLine("Send");
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    }

    public void Receive()
    {
    try
    {
    string rec = serialPort1.ReadLine();
    Console.WriteLine(rec);
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }

    }

    public void Close()
    {
    serialPort1.DiscardOutBuffer();
    serialPort1.Close();
    Console.WriteLine("CLOSE");
    }

    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
    try
    {
    string rec = serialPort1.ReadExisting();
    Console.WriteLine(rec);
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    }
    }
    }

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



<< 0 >>

パスワード/

- Child Tree -