考虑我有一个获取用户数据的用户表.我有2个案例,人们可以注册我的网站.
案例1.人们只需输入注册我的网站所需的所有信息.(老经典方式)
案例2.我设置OAuth,人们可以使用Twitter或其他身份验证系统(提供OAuth API)登录我的网站.因此,这些用户实际上不会输入他们的
我应该以什么方式存储在我的网站中登录案例2的用户?我只是将他们的信息(我将使用OAuth API获取)存储为他们的用户ID,并将令牌作为他们的密码存储?或者我是否必须使用提供的信息再次注册?
管理案例1和案例2的最佳方法是什么?有人可以告诉我他们自己的经历吗?
我想知道如何从集合中将用户控件添加到窗口中.目前我将我的视图文件夹中的控件添加到网格单元格中.
<views:MyControl Grid.Column="0" Grid.Row="0" Margin="10"/>
Run Code Online (Sandbox Code Playgroud)
我的视图模型中有一个ObservableCollection,它存储了一组用户控件.在我看来,我想从该集合中取一个控件并将其放入我的网格单元格中.我怎样才能像上面那样在网格中添加控件,但是从我的收藏中添加?
例如,{绑定路径控件.[1]
我有一个关于WPF UserControls和MVVM Pattern的问题,我需要在ViewModel中公开一个Property,以便它在Properties框中可见(当UserControl放在MainWindow上时),这样我的WPF Control的用户就可以设置设计时新物业的价值.
当我将自定义属性get/set放在UserControl.xaml.cs文件中时,这很容易,但这似乎违反了MVVM规则.
通常情况下,我可以找到我遇到的大多数问题的答案,但我现在很难过.
可以说我有以下内容:
<asp:Repeater ID="repSubItems" runat="server" DataSource="<%# SubItems %>" >
<ItemTemplate>
<sc:FieldRenderer ID="FieldRenderer1"
FieldName="BlurbSpot_Content_SubHeading"
runat="server"
Item="<%# Container.DataItem as Sitecore.Data.Items.Item %>" />
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
我想在代码背后能够做到:
FieldRenderer1.Style["Width"] = MyCoolWidth;
Run Code Online (Sandbox Code Playgroud)
但在Repeater我内部无法访问FieldRenderer1控件.
有人可以告诉我小部件和控件之间的区别是什么?一个定义说,小部件是一个完整的应用程序,位于手机主页上.其他人说这是一个像按钮一样的简单控制.真正的答案是什么?
此外,我在哪里可以找到适用于Android 4.0的完整控件列表.我知道有按钮,复选框,textview,Listcontrol等.我假设没有树视图,但似乎没有任何文档列出所有可用的控件.在.net中有许多常用控件,如果包含其他控件库,还有数百个.我想要一个特定的控件,不知道它是否已经存在或者我是否需要从头开始创建它.
没有关于如何构建自定义控件(我认为称为自定义组件而不是控件)的完整示例,书籍和视频,除了对应使用http://developer.android的类的引用. com/guide/topics/ui/custom-components.html.
我如何绘制它,如何基于用户交互动画它.在互联网上搜索了一个星期之后,我得出的结论是它要么无法完成,要么没有人想出来.
我正在研究一个派生自UserControl该类的类.此类添加的属性[Browsable(false)]和[EditorBrowsable(EditorBrowsableState.Never)]该事件TextChanged是从继承的Control类.
我的新控制与a相当TabPage; 它在另一个可以与之相当的类中使用TabControl.这很重要的原因是因为这意味着我需要控件的用户才能访问此事件.在.NET反射器中,我们看到TabPage控件(继承自Panel,也添加了这两个属性)使用以下代码"覆盖"这两个属性:
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public event EventHandler TextChanged;
Run Code Online (Sandbox Code Playgroud)
我把它复制到我的项目中,据我所知,它可以正常工作,但编译器给了我一个警告:"'System.Windows.Forms.Frameset.FunctionPanel.TextChanged'隐藏了继承的成员'System.Windows.Forms. UserControl.TextChanged'.如果想要隐藏,请使用new关键字." 我不想隐藏旧的TextChanged事件; 我只是想删除该Browsable(false)属性.虽然隐藏旧事件似乎可以在表面上完成工作,但这似乎是一种丑陋而迂回的做法.有没有办法在不隐藏旧事件的情况下做到这一点?如果没有,有没有办法让编译器停止给我一个警告?
在此先感谢,布兰登
在我目前的应用程序中,我有main form: frmMain一个statusstrip和一个label: lblStatus内部.我想从我的用户控件中更新该标签,当我点击相关按钮时,我将其添加到我的主窗体中:
ucBeheer ucBeheer = new ucBeheer();
splitContainer1.Panel2.Controls.Add(ucBeheer);
Run Code Online (Sandbox Code Playgroud)
从我内心usercontrol做的时候,我想更新lblStatus.我尝试将以下属性添加到我的主窗体:
public string updateStatus
{
get { return lblStatus.Text; }
set { lblStatus.Text = value; }
}
Run Code Online (Sandbox Code Playgroud)
然后在我的用户控件中访问这样的方法:
frmMain mainForm = new frmMain();
mainForm.updateStatus = "This is a test";
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我知道这是因为我正在制作我的新对象frmMain,但我不知道如何解决这个问题呢?
我也发现了以下方式,Event Handler但是我不能这样做,因为我的用户控件实际上还没有在我的mainForm中,直到我在那里添加它,点击按钮,所以我没有引用它.
所以我有点想法,我希望有人可以帮助我.谢谢,托马斯
编辑:所以我设法通过以下方式完成:
frmMain owningForm = (frmMain)this.Parent.Parent.Parent.Parent;
owningForm.updateStatus = "This is a test";
Run Code Online (Sandbox Code Playgroud)
但this.Parent.Parent.Parent.Parent...对我来说似乎不是很好的编码,有没有其他方法可以获得最顶级的父母?
我发现自己第一次使用C3编码,并且在looong时间内第一次使用Visual Studio.
我正在创建一个允许选择文件/文件夹等的用户控件,以便将来更容易实现这种控件.但是,每当我将控件拖动到任何窗体时,Visual Studio都会立即崩溃.我已经尝试过多次重建整个解决方案.该错误似乎只发生在控件中创建公共变量时...
有谁知道怎么解决这个问题?代码正在进行中......;)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace BackupReport.tools
{
public partial class pathchooser : UserControl
{
#region "Datatypes"
public enum DLG { Folder, FileSave, FileOpen };
#endregion
#region "public properties"
public DLG Dtype
{
get
{
return this.Dtype;
}
set
{
this.Dtype = value;
}
}
public string labelText
{
get
{
return this.labelText;
}
set
{
this.labelText = value;
label1.Text = this.labelText;
}
} …Run Code Online (Sandbox Code Playgroud) 下面的UserControl工作正常,但我想更容易更改样式.
我尝试过的一件事是将Style移动到ResourceDictionary中的通用按钮样式,但是会出现错误,如下所示.
我尝试的另一件事是将其转换为自定义控件,但这是这个问题的主题
目前有几个类似的按钮被定义为UserControls.是否有推荐的方法来改变所有这些风格?
干杯
<Style TargetType="{x:Type Button}">
<Setter Property="Style" Value="{StaticResource blueButtonStyle}"/>
</Style>
Error: Style object is not allowed to affect the style property of the object to which it applies
Run Code Online (Sandbox Code Playgroud)
<UserControl.Resources>
<ResourceDictionary Source="pack://application:,,,/Smack.Core.Presentation.Wpf;component/Themes/generic.xaml" />
</UserControl.Resources>
<Button x:Name="_button" Style="{StaticResource blueButtonStyle}" Command="{Binding AddNewItemCommand}" >
<StackPanel Orientation="Horizontal" >
<Image Source="{resx:Resx ResxName=Smack.Core.Presentation.Resources.MasterDetail, Key=bullet_add}" Stretch="Uniform" VerticalAlignment="Center" />
<AccessText x:Name="_accesText" VerticalAlignment="Center">_Add New Subject</AccessText>
<ContentPresenter/>
</StackPanel>
</Button>
Run Code Online (Sandbox Code Playgroud)
public partial class AddNewItemButton : UserControl
{
public AddNewItemButton() { InitializeComponent(); }
public …Run Code Online (Sandbox Code Playgroud) 在使用C#a while之后,我认识到系统窗体的用户控件不提供像我从Visual Basic 6中所知的tooltiptext属性.我看到Form,TextBox,Label,ComboBox和PictureBox没有这样的财产.现在我有一个奇怪的问题:如何通过像上面提到的控件上的鼠标悬停向用户显示工具提示?
是的,我在工具箱中看到了"工具提示"控件.它提供了一个气球,我不需要气球.它显示每个用户会话只有一个项目的工具提示,然后是(组件的已知问题)以及为什么我需要一个额外的组件,如果这应该只是相应控件的属性,我想提供像TextBoxes,Labels等工具提示
是的,我看到了"帮助提供商".我通常从未向我的项目分配过帮助文件,因此我不使用帮助系统.我需要的是一个简单的Tooltiptext,而不是"F1组件".现在我很好奇,如果控件没有为它提供选项,我将如何实现Tooltiptext.可以吗,C#没有控制工具提示?甚至德尔福也有!或者我错过了什么?
解决方案:
从项目中删除所有notifyicon控件,以确保系统托盘中不会出现不需要的信息气泡.
在工具箱中拖放工具箱中的工具提示组件,但忽略所有气球属性和气球超时属性和气球计时器属性,只需拖放组件而无需进一步操作.
一个奇怪的新属性字段"tooltip1上的工具提示"现在显示在窗体上的所有TextBoxes和Labels等中.只需处理此字段,因为它将是您的Tooltip属性,并且不会在代码或设计器上设置任何其他内容.构建和编译.tooltiptext现在将显示为没有baloon功能的正常工具提示.