标签: winforms

使用Process.Start在C#中打开Excel文件

我正在尝试通过单击按钮打开Excel文件。由于某种原因,它不起作用。我已经尝试了几件事。有什么想法为什么他们不起作用?

方法1我尝试过。这将打开文件管理器,但不会打开正确的文件。绝对是使用了正确的文件路径,并且该文件确实存在

private string fileCopy;

public RepairResultsControl()
{
    InitializeComponent();
}

public void Show(PSRepair.AnalysisResults analysis, string pathNameCopy)
{
    fileCopy = pathNameCopy;
    Show();
}

private void btnGoToFile_Click(object sender, EventArgs e)
{
    Process.Start("explorer.exe", "/select,"+ fileCopy);
}
Run Code Online (Sandbox Code Playgroud)

方法2。这只是没有打开任何东西,不确定为什么

System.Diagnostics.Process.Start(@"C:\Users\username\Documents\newTest.xlsx");
Run Code Online (Sandbox Code Playgroud)

c# excel winforms

3
推荐指数
1
解决办法
5763
查看次数

日文字符显示?标志

我有一个使用Segoe UI字体的winform应用程序.在Windows 10中,正确显示日语字符.但是,Windows 7将字符显示为?标志.导致此问题的原因是什么?如何解决此问题?

c# unicode winforms

3
推荐指数
1
解决办法
429
查看次数

单击图片时如何播放单独的GIF?

所以我刚开始学习C#,我目前正在开发一个简单的Form应用程序.我想要做的是点击GIF时,它会切换到另一个GIF,然后在1秒后回到原始GIF.但是发生的事情一无所获.它只是保持原来的GIF.如果我尝试使用消息框而不是工作正常,它只是试图改变GIF的来源是问题.

private void pictureBox1_Click(object sender, EventArgs e)
{
    /* pictureBox2.Show();
       Thread.Sleep(1000);
       pictureBox2.Hide(); */
    pictureBox1.Image = WindowsLogin.Properties.Resources.PenguinEXE;
    Thread.Sleep(1000);
    pictureBox1.Image = WindowsLogin.Properties.Resources.PenguinIdle;
}
Run Code Online (Sandbox Code Playgroud)

我也试过使用ShowHide方法,但也没用.

c# winforms

3
推荐指数
1
解决办法
33
查看次数

如何使用C#手动绑定到WinForm中的蓝牙低能耗设备?

这个问题通常由以下问题回答:Windows UWP发现后连接到BLE设备

我目前正在使用Windows 10上的C#.NET WinForm编写自定义服务并进行测试,以连接到低功耗蓝牙(BLE)设备。我正在使用Framework 4.6.1。我们正在使用带有TI CC2650 BLE子卡的TI SmartRF06评估板。另一位开发人员正在处理主板的固件。

当前我使用的方法类似于上面的参考答案,因此我能够连接到已经绑定的BLE设备。该设备是手动绑定的,Windows确实要求我输入PIN。由于设备没有PIN,只需输入“ 0”就可以连接设备。一旦建立连接,我就可以使用所有GATT服务并做我需要做的事情。因此,我对找到并持有Advertising BLE设备没有任何问题。

问题是如何连接尚未配对的BLE设备?我遍历网络,发现了许多BLE代码示例,但没有具体说明如何完成代码配对。不确定我什至不需要配对,但Windows似乎仅在配对设备上显示我的GATT服务。

当我使用未配对的设备执行此操作时:

private void BleWatcherOnReceived(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args)
{       
    var dev = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress);
    // dev.DeviceInformation.Pairing.CanPair is true
    // dpr.Status is Failed
    DevicePairingResult dpr = await dev.DeviceInformation.Pairing.PairAsync(DevicePairingProtectionLevel.None);
    var service = await GattDeviceService.FromIdAsync(dev.DeviceInformation.Id);
}
Run Code Online (Sandbox Code Playgroud)

当未手动配对设备时,dpr的结果总是失败。导致结果GattDeviceServices为空。但是我能够获得BLE设备的广告和属性。

还有这种类型的连接方法,但我不知道如何使用它:

var prslt = await device.DeviceInformation.Pairing.Custom.PairAsync(DevicePairingKinds.ProvidePin, DevicePairingProtectionLevel.None,IDevicePairingSettings);
Run Code Online (Sandbox Code Playgroud)

IdeviceParingSettings是一个接口。不确定要使用哪个类。我在想这是可以设置我可能需要的“ O”密码的地方?

在Windows中使用BLE设备没有安全性的情况下,是否有人能够与Windows中的BLE设备配对。基本上,它应该是开放的。我觉得我缺少一些简单的东西,或者根本不可能做到这一点(我已经看到一些帖子声称是这种情况。其中大多数已经有很多年了)。

我确实尝试了上述文章中描述的方法,但结果没有任何差异。

任何帮助表示赞赏。如果您需要更多代码,请查看我在顶部提供的链接,因为这是我开始的地方。如果有可能我做错了一个序列,我将很乐意提供我所有的实际代码。

c# winforms bluetooth-lowenergy windows-10-desktop

3
推荐指数
1
解决办法
7484
查看次数

以编程方式显示桌面

我正在编写Windows窗体应用程序,我需要以编程方式返回到桌面.

我尝试了这段代码,但它没有用:

using System;
using System.Windows.Forms;

private void ToggleDesktop() {

SendKeys.Send("^({ESC}D)"); //<-- Semantic error, Should simulate: WIN+D

}
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?

c# desktop sendkeys winforms

3
推荐指数
1
解决办法
1891
查看次数

DotNetBrowser的Browser.GetRemoteDebuggingURL()返回string.Empty

我使用以下命令设置了一个Winform-Application(以后将是WPF) DotNetBrowserControl

BrowserView browserView = new 
    WinFormsBrowserView(BrowserFactory.Create(BrowserType.HEAVYWEIGHT));
Controls.Add((Control)m_BrowserView);
string remoteDebuggingUrl = m_BrowserView.Browser.GetRemoteDebuggingURL();
Run Code Online (Sandbox Code Playgroud)

注意remoteDebuggingUrlstring.Empty

DotNetBrowserVersion / DotNetBrowserChromium-版本:1.8.3.0 .NetFramework:4.5.2

c# winforms dotnetbrowser

3
推荐指数
1
解决办法
342
查看次数

C# - 将值添加到字符串数组中,除非它们是NULL

我正在ComboBox使用从"配置"形式的四个文本框中获取的值列表填充.代码有效,但我遇到的问题是这些文本框中的某些文本框是空白的.如果任何文本框为空,那么我的ComboBox列表中有空格.我的代码:

comboFms.Items.Clear();
string[] fmsDB = new string[] { "Select FMS Database", fms1, fms2, fms3, fms4 };
comboFms.Items.AddRange(fmsDB);
this.cboFms.Text = "Select FMS Database";
this.cboFms.Enabled = true;
Run Code Online (Sandbox Code Playgroud)

在此示例中,仅fms1具有值.这导致下拉列表显示如下:

截图

有什么办法可以从字符串数组或ComboBox中排除空白值吗?

c# arrays combobox winforms

3
推荐指数
1
解决办法
667
查看次数

多次调用FormClosing事件

我有一个组合框来设置用户文化: 用户文化组合框

如果我将Culture值更改x次,当用户尝试退出时,FormClosing方法将被触发x次.

这是我的FormClosing事件:

    private void FrmParent_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (MessageBox.Show(this, Properties.Resources.msgExit, this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
            e.Cancel = true;
    }
Run Code Online (Sandbox Code Playgroud)

这是我的组合框值更改事件:

    void cbCulture_ToolValueChanged(object sender, ToolEventArgs e)
    {
        ComboBoxTool cbCulture = (ComboBoxTool)sender;
        var culture = cbCulture.Value.ToString();

        FormHelpers.SetCulture(culture);

        this.Controls.Clear();
        this.InitializeComponent();
        InitForm();
    }
Run Code Online (Sandbox Code Playgroud)

我必须清理并初始化控件以将UI更改为新文化,但这样做我是否在InitializeComponent()中多次分配FormClosing事件?我该如何避免这种行为?

c# infragistics winforms

3
推荐指数
1
解决办法
447
查看次数

当鼠标悬停在一行上时,突出显示DataGridView中的行

我有一个DataGridView,当前它看起来像下面的图像:

在此处输入图片说明

我要达到的目的是,当我将鼠标悬停在任何行的任何列上时,应突出显示整行,并且背景颜色应变为不同的颜色,如下图所示。

在此处输入图片说明

您能帮我解决这个问题吗?

c# datagridview mouseover winforms

3
推荐指数
1
解决办法
3049
查看次数

饼图切片单击

我试图点击我的饼图,我从Windows形式的工具箱中为C#吸毒,​​并显示该切片的详细信息.现在这是我点击的代码.我想知道这是正确的路线还是我应该走的路线.

private void chart1_Click(object sender, EventArgs e)
{
    HitTestResult results = chart1.HitTest((e as MouseEventArgs).X, (e as MouseEventArgs).Y);
}
Run Code Online (Sandbox Code Playgroud)

我也是 using System.Windows.Forms.DataVisualization.Charting;

c# data-visualization winforms pie-chart

3
推荐指数
1
解决办法
1281
查看次数